技术开发 频道

详解VSTS与OFFICE的协同开发:Excel篇

  点击“Add”按钮关闭对话框,Visual Studio会为我们添加一个Ribbon界面,同时会为我们添加一个名为MyRibbon的类来对这个界面进行管理。这时,我们就可以在Visual Studio的Ribbon界面设计器中对Ribbon界面进行编辑了。根据我们的需要,我们在Ribbon界面上添加两个普通按钮,分别用于两个活动面板的显示,然后再添加一个开关按钮,控制活动面板的显示和隐藏。在设计器中,编辑Ribbon界面如下:
 


图6 在设计器中编辑Ribbon界面

  控制活动面板的显示和隐藏

  完成Ribbon界面的编辑后,我们就可以实现面板上各个按钮控件的动作,控制两个活动面板的显示和隐藏。
首先,我们在MyRibbon类中添加两个活动面板类的对象所为类的属性。

public partial class MyRibbon : OfficeRibbon
{
        ActionsPaneControl1 actionsPane1
= new ActionsPaneControl1();
        ActionsPaneControl2 actionsPane2
= new ActionsPaneControl2();
///
}

  然后,在MyRibbon类的构造函数中,添加界面上按钮控件的事件响应函数:
public MyRibbon()
{
            InitializeComponent();

            
this.button1.Click += new System.EventHandler
                
<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>
                    (
this.button1_Click);
            
this.button2.Click += new System.EventHandler
                
<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>
                    (
this.button2_Click);
            
this.toggleButton1.Click += new System.EventHandler
                
<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>
                    (
this.toggleButton1_Click);
            
this.Load += new System.EventHandler
                
<Microsoft.Office.Tools.Ribbon.RibbonUIEventArgs>
                    (
this.MyRibbon_Load);
}

  大家可以看到在这段代码中,我们同时也对Ribbon界面加载的事件进行了处理,所以在这里我们将MyRibbon_Load()函数实现如下。在这段代码中,我们将两个活动面板添加为当前工作簿的活动面板,并且默认状态下不显示这些面板。

private void MyRibbon_Load(object sender, RibbonUIEventArgs e)
{
            
// 添加活动面板
            Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1);
            Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane2);
            
// 默认隐藏活动面板
            actionsPane1.Hide();
            actionsPane2.Hide();
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane
= false;
}

  最后,我们将Ribbon界面上各个按钮控件的点击事件处理函数实现如下,完成活动面板的显示和隐藏:

private void button1_Click(object sender, RibbonControlEventArgs e)
  {
            
// 显示侧面板
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane =
                
true;
            
// 控制活动面板的显示
            actionsPane2.Hide();
            actionsPane1.Show();
}

private void button2_Click(object sender, RibbonControlEventArgs e)
{
            Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane
=
                
true;
            actionsPane1.Hide();
            actionsPane2.Show();
}

private void toggleButton1_Click(object sender,
            RibbonControlEventArgs e)
{
            
// 根据按钮状态,显示或者隐藏侧面板
            if (toggleButton1.Checked == true)
            {
                Globals.ThisWorkbook.Application.
                    DisplayDocumentActionTaskPane
= false;
            }
            
else
            {
                Globals.ThisWorkbook.Application.
                    DisplayDocumentActionTaskPane
= true;
            }
}

  这样,我们就可以通过Ribbon界面上的按钮来控制侧面板的显示和隐藏。


图7 Ribbon界面
0
相关文章