几何尺寸与公差论坛

 找回密码
 注册
查看: 2883|回复: 0

【转帖】如何编写ToolBar的ButtonClick事件

[复制链接]
发表于 2008-11-12 11:44:35 | 显示全部楼层 |阅读模式
1,在编写ToolBar的ButtonClick事件时,可能会产生疑问,因为在vs 2003中ToolBar上button的没有自己的click事件。下面是事件响应函数的框架
protected void toolBar1_ButtonClick ( Object sender, ToolBarButtonClickEventArgs e)         
{
   
//
e.Button获得了toolbar上的button
   
//
利用button在toolbar上的Index号来区分点击了哪个button
   
//使用switch来给出不同的响应

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

         break;
      
case 1
:
         
// Insert code

         break;
      
case 2
:
         
// Insert code   

         break;
    }
}


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

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


这样很好的完成了功能,同时节省了代码。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|几何尺寸与公差论坛

GMT+8, 2024-12-22 02:01 , Processed in 0.037144 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表