几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量

几何尺寸与公差论坛------致力于产品几何量公差标准GD&T (GDT:ASME)|New GPS(ISO)研究/CAD设计/CAM加工/CMM测量 (http://www.dimcax.com/hust/index.php)
-   程序界面 (http://www.dimcax.com/hust/forumdisplay.php?f=124)
-   -   【转帖】如何编写ToolBar的ButtonClick事件 (http://www.dimcax.com/hust/showthread.php?t=2202)

huangyhg 2008-11-12 11:44 AM

【转帖】如何编写ToolBar的ButtonClick事件
 
1,在编写ToolBar的ButtonClick事件时,可能会产生疑问,因为在vs 2003中ToolBar上button的没有自己的click事件。下面是事件响应函数的框架
protectedvoid toolBar1_ButtonClick ( Object sender, ToolBarButtonClickEventArgs e)
{
//
e.Button获得了toolbar上的button
//
利用button在toolbar上的Index号来区分点击了哪个button
//使用switch来给出不同的响应

switch(toolBar1.Buttons.IndexOf(e.Button))
{
case0
:
// Insert code

break;
case1
:
// Insert code

break;
case2
:
// Insert code

break;
}
}


2,把ToolBar上的button的响应和菜单相联系
首先,把ToolBar上的每一个button的Tag属性设置为相应的菜单名称,这里要注要的是如果你是通过设计视图里直接填写tag属性的值,系统自动生成的代码是:
this.tbbExit.Tag = "mnuUserExit";
你需要手工改成:
this.tbbExit.Tag = mnuUserExit;
其中mnuUserExit是一个菜单的名字,即是一个MenuItem对象
其次,ToolBar的ButtonClick事件可以写成下面的样子:

privatevoid myToolBar_ButtonClick(object sender, System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
ToolBarButton tbCurrent
=
e.Button;
MenuItem menuItem
=
(MenuItem)(tbCurrent.Tag);
menuItem.PerformClick();
}


这样很好的完成了功能,同时节省了代码。


所有的时间均为北京时间。 现在的时间是 06:57 PM.