查看单个帖子
旧 2008-11-12, 11:44 AM   #1
huangyhg
超级版主
 
huangyhg的头像
 
注册日期: 04-03
帖子: 18592
精华: 36
现金: 249466 标准币
资产: 1080358888 标准币
huangyhg 向着好的方向发展
默认 【转帖】如何编写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();
}


这样很好的完成了功能,同时节省了代码。
__________________
借用达朗贝尔的名言:前进吧,你会得到信心!
[url="http://www.dimcax.com"]几何尺寸与公差标准[/url]
huangyhg离线中   回复时引用此帖
GDT自动化论坛(仅游客可见)