求VSTO的开发高手帮助!

I_Love_IT! 2006-05-03 11:32:54
在ActionsPane里建立了四个Controls,想用其中一个Controls的按钮点击,来改变另一个Controls里面的一个Label的显示值.

请高手指示思路.有代码更佳.
...全文
216 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
brbrm 2006-05-28
  • 打赏
  • 举报
回复
说明:正在编写一套《.NET Office高级编程》,Excel篇即将完成。但不太清楚市场前景如何。以下是一段关于Excel智能文档编程的节选,希望有所帮助:


6.3.1
新建一个Excel工作薄程序项目,在“解决方案资源管理器”中选中当前项目节点,通过菜单命令“项目 | 添加新项”打开“添加新项”对话框,在模板列表中选中“操作窗格控件”,接受默认名称“ActionsPaneControl1.cs”,单击“添加”按钮将其加入到项目中.
新建的这个ActionsPaneControl1是一个用户控件。除了没有标题栏外,它和Windows窗体非常类似,可以向其中加入任何标准Windows窗体控件(而不是VSTO封装后的窗体控件)。这里从工具箱中向其添加两个Label控件和一个Button控件,
在使用VSTO创建的Excel工作薄程序项目中,Globals类所提供的ThisWorkbook对象具有一个ActionsPane属性,表示附加到工作薄文档的操作窗格。要在打开工作薄时显示ActionsPaneControl1,还需要将该控件的实例对象加入到ActionsPane的控件集合当中:

private void ThisWorkbook_Startup(object sender, System.EventArgs e)
{
ActionsPaneControl1 control1 = new ActionsPaneControl1();
this.ActionsPane.Controls.Add(control1);
}

编译运行程序,可以看到工作薄的ActionsPane对象及其中的控件已经显示在Excel界面右侧的“文档操作”视图当中了
切换到ActionsPaneControl1的设计视图,在属性窗体的事件页中为控件添加Load事件,通过下面的事件处理代码在Label控件中说明操作窗格及其控件的排列方向:

private void ActionsPaneControl1_Load(object sender, EventArgs e)
{
label1.Text = "方向:" + Globals.ThisWorkbook.ActionsPane.Orientation.ToString();
label2.Text = "位置:" + Globals.ThisWorkbook.ActionsPane.StackOrder.ToString();
}

而后通过“重新定位”按钮(button1)的单击事件来修改控件的排列方向:

private void button1_Click(object sender, EventArgs e)
{
ActionsPane pane1 = Globals.ThisWorkbook.ActionsPane;
if (pane1.Orientation == Orientation.Horizontal)
{
if (pane1.StackOrder == StackStyle.FromLeft)
pane1.StackOrder = StackStyle.FromRight;
else
pane1.StackOrder = StackStyle.FromLeft;
}
else
{
if (pane1.StackOrder == StackStyle.FromTop)
pane1.StackOrder = StackStyle.FromBottom;
else
pane1.StackOrder = StackStyle.FromTop;
}
label1.Text = "方向:" + Globals.ThisWorkbook.ActionsPane.Orientation.ToString();
label2.Text = "位置:" + Globals.ThisWorkbook.ActionsPane.StackOrder.ToString();
}

重新编译运行程序,可以在Excel界面中拖动“文档操作”视图来改变ActionsPane对象的排列方向,并通过单击“重新定位”按钮来改变其中控件的排列方向,看看窗格中的文本发生了什么改变。
alaclp 2006-05-26
  • 打赏
  • 举报
回复
刚开始学习这个东西,希望能够相互学习交流
qq10204315

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧