本文讲述如何使用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的效果如下所示:
本文Demo的源代码如下: