本文讲述如何使用ComponentOne Menus and Toolbars™ for WinForms控件创建停靠/浮动工具栏,多级菜单以及上下文菜单。

 

1.创建主菜单和上下文菜单

C1MainMenu 控件和C1ContextMenu 控件可以显示用于导航和命令的多层、多列的菜单。每一个菜单都包含了一系列的命令链接,而每一个都链接到了一个单一的共享命令。

从工具箱拖拽C1MainMenu控件和C1ContextMenu控件到到窗体。然后给控件通过CommandLinks属性用code或Editor添加不同的命令链接CommandLink,并用ComandLink.Command属性指定命令。具体的参考代码如下:

private C1.Win.C1Command.C1CommandMenu c1CommandMenu_File = new C1.Win.C1Command.C1CommandMenu();
this.c1CommandMenu_File.Text = "文件"; 

private C1.Win.C1Command.C1CommandLink c1CommandLink1 = new C1.Win.C1Command.C1CommandLink();
this.c1CommandLink1.Command = this.c1CommandMenu_File;

private C1.Win.C1Command.C1MainMenu c1MainMenu1 = new C1.Win.C1Command.C1MainMenu();
this.c1MainMenu1.CommandLinks.AddRange(new C1.Win.C1Command.C1CommandLink[] {this.c1CommandLink1,});

 

2.创建C1ToolBar和C1CommandDock

拖拽C1CommandDock控件到窗体,它给C1Toolbar提供停靠和浮动,然后拖拽C1ToolBar控件到CommandDock,这是一个表示工具栏的控件。就像C1MainMenu控件一样,它也包含了一系列的命令链接。CommandDock可以添加不同的多个Toolbar。代码参考如下:

	    this.c1CommandDock1.Controls.Add(this.c1ToolBar_Tools);
            this.c1CommandDock1.Controls.Add(this.c1ToolBar_Format);
            this.c1CommandDock1.Controls.Add(this.c1ToolBar_Edit);
            this.c1CommandDock1.Controls.Add(this.c1ToolBar_File);

 

3.创建C1CommandHolder

拖拽C1CommandHolder控件到窗体,该控件可以将菜单和工具栏的所有命令存储为一个单一的集合。所有的命令都可以触发C1CommandHolder的Click事件。并且允许您在多个菜单和工具栏之间共享命令。当添加MainMenu、Toolbar等控件的时候,C1CommandHolder组件可以被自动创建并进行管理。

给C1CommandHolder挂上Click事件,当点击相应的命令就会触发Click事件。代码如下所示:

  private void c1CommandHolder1_CommandClick(object sender, CommandClickEventArgs e)
        {
            //c1command click event
            label1.Text = "执行 " + e.Command.Text + " 操作";
        }

 

这样,具有Office视觉样式的菜单和工具栏就完成了。本文Demo的效果如下所示:

menu-toolbars

 

本文Demo的源代码如下:

C1ContextMenuToolbarOverview.7z (1.15 mb)