多个控件共用一个响应

 

C#多个控件共用一个响应

比如说,有100个复选框和一个textedit,每点击一个复选框,就将相应的复选框上的文字显示到textedit控件中。但是,100个复选框太多,为了方面,就用chenkbox[] 弄成数组形式,然后,怎样让所有的复选框对应同一个响应,然后在根据下标来直接调用checkbox[i].text?
不用数组,在事件中用sender获得CheckBox

下面是ASP.NET的,如果是Winform的,代码类似

protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = sender as CheckBox;

if (chk != null)
{
//使用chk.Text
}
}

 

 

如何理解:多个控件共用一个事件处理程序

原来每个button的Click的事件入口在设计时是可以自行指定的。  

十万火急:VC中,能不能集中处理多个按钮(控件)的事件?

是这样的,在VC中,如果一个Dialog上有多个按钮,则每双击一个按钮,就会自动添加与之对应的消息,比如:OnBnOKClick(),然后,在对话框类,加上了public的afx_msg,以及在实现*.cpp里,添加了消息映射但是,如果对话框上按钮多,岂不是要为每个按钮(控件)都添加消息处理函数?能不能为每个同类型的控件,比如按钮,都映射同一个消息函数,(比如我自己添加的BtnClicked()),根据按钮的ID号来进行判断,当前按下的是哪个按钮并处理?

 

ON_CONTROL_RANGE(BN_CLICKED, 1000, 1005, OnButton)//1000-1005是上面自动添加的按扭ID
在H文件“protected:”下面加上
afx_msg void OnButton(UINT ID);
在CPP文件写上函数体:
void Form::OnButton(UINT ID)
{
switch(ID)
{
case 1000:
   MessageBox("你按了第一个按扭。");
   break;
case 1001:
   MessageBox("你按了第二个按扭。");
   break;
}
}

关键在于ON_CONTROL_RANGE咋个宏 具体的使用可以去查看MSDN
 
  
  

共享一个事件处理程序

  1. 打开您在上一课中创建的 EventHandler 项目。如果没有保存该项目,您需要先返回上一课使程序响应用户:创建事件处理程序并完成该课程中的步骤。

  2. 在“解决方案资源管理器”中,选择“Form1.vb”,然后在“视图”菜单中选择“设计器”。

  3. 将另一个 Button 控件从“工具箱”拖动到窗体上。

  4. 在“属性”窗口中,将 AutoSize 属性设置为 True

  5. 在“视图”菜单上,选择“代码”以打开代码编辑器。

  6. Button1_MouseEnter 方法的声明 (Private Sub Button1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.MouseEnter) 中将 Handles 子句更改为 Handles Button1.MouseEnter, Button2.MouseEnter

  7. 在事件声明的正文中,将代码替换为以下代码。

    VB
    If sender.Equals(Button1) Then
      Button1.Text = "The mouse has entered Button1"
    Else
      Button2.Text = "The mouse has entered Button2"
    End If
    
    

    此代码检查发送者是否为“Button1”——如果是,则更新“Button1”的 Text 属性;如果不是,则更新“Button2”的 Text 属性。

  8. Button1_MouseLeave 方法声明中,按以下所示更改 Handles 子句。

    Handles Button1.MouseLeave, Button2.MouseLeave.

  9. 在事件声明的正文中,将代码替换为以下代码。

    VB
    sender.Text = "The mouse has left"
    
    

    在本例中,代码将发送者(“Button1”或“Button2”)的 Text 属性设置为同一字符串。

  10. 按 F5 运行应用程序。

    现在,当鼠标指针移过按钮时,文本变为由 The mouse has entered 和按钮名称组成,当鼠标指针离开按钮时,文本变回 The mouse has left

    试着向窗体添加更多的控件并修改 Handles 子句以包括它们 — 它们甚至不必为同一类型的控件!

参考文献:http://www.nokiamobile.org.cn/viewsearch.php?pid=297946379

                   http://zhidao.baidu.com/question/216315945.html

                  http://msdn.microsoft.com/zh-cn/library/4ac48519(v=vs.80).aspx

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值