社区
C#
帖子详情
多个自定义button公用一个事件处理,在事件处理中怎样得到是哪一个button触发的?
zhouchunping_99
2008-07-28 04:04:55
多个自定义button公用一个事件处理,在事件处理中怎样得到是哪一个button触发的?
如:
button[i].click+=new EventHander(button_click);
private void button_click(object sender,eventArgs e)
{
...
}
...全文
343
25
打赏
收藏
多个自定义button公用一个事件处理,在事件处理中怎样得到是哪一个button触发的?
多个自定义button公用一个事件处理,在事件处理中怎样得到是哪一个button触发的? 如: button[i].click+=new EventHander(button_click); private void button_click(object sender,eventArgs e) { ... }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
25 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wdgphc
2008-07-28
打赏
举报
回复
2楼应该是可以的.但是LZ这句button[i].click+=new EventHander(button_click); 表明了是WebForm,我还从未试过.好像WinForm中不支持控件数组.
happyboxman
2008-07-28
打赏
举报
回复
可怜楼上的都说完了啊。。。
sender as Button
补充一下
还是用as好
眼里进了砂
2008-07-28
打赏
举报
回复
[Quote=引用 18 楼 csharp_study_99 的回复:]
引用 6 楼 ericzhangbo1982111 的回复:
private void button_click(object sender,eventArgs e)
{
Button bt = (Button)sender;
if(bt.Name=="button1")
}
[/Quote]
try530
2008-07-28
打赏
举报
回复
正解如下:
private void button_click(object sender,eventArgs e)
{
Button bt=(Button)sender;
//这样你就可以得到点击了那个button
if(bt.Text="a")
{
.......
}
if(bt.Text="b")
{
.......
}
if(bt.Text="c")
{
.......
}
if(bt.Text="d")
{
.......
}
}
zhouchunping_99
2008-07-28
打赏
举报
回复
哎,自己白试了那么长时间,原来是自己定义控件时忘了起名字了,怪不得总是什么也得不到。哈哈。。。。
就当散分了。。。。
不好意思了。。。。。。
livesw
2008-07-28
打赏
举报
回复
((Button)sender).Text 就是你点击的button名称
csharp_study_99
2008-07-28
打赏
举报
回复
[Quote=引用 6 楼 ericzhangbo1982111 的回复:]
private void button_click(object sender,eventArgs e)
{
Button bt = (Button)sender;
if(bt.Name=="button1")
}
[/Quote]
xz_lm_fly
2008-07-28
打赏
举报
回复
private void button_click(object sender,eventArgs e)
{
switch((Control)sender).Name)
{
case "button1":
....;break;
.....
}
}
CsToD
2008-07-28
打赏
举报
回复
楼主,不可能,绝对可用,你跟定哪里出错了,我给你发消息了
「已注销」
2008-07-28
打赏
举报
回复
[Quote=引用 14 楼 longfei_liuweitao 的回复:]
引用 12 楼 zhouchunping_99 的回复:
引用 6 楼 ericzhangbo1982111 的回复:
private void button_click(object sender,eventArgs e)
{
Button bt = (Button)sender;
if(bt.Name=="button1")
}
也不行,我也试过
Button这里的Button是你自定义的Button不是.net里自带的Button,如果不行的话可不可以把报什么错贴上来?!
[/Quote]
「已注销」
2008-07-28
打赏
举报
回复
[Quote=引用 12 楼 zhouchunping_99 的回复:]
引用 6 楼 ericzhangbo1982111 的回复:
private void button_click(object sender,eventArgs e)
{
Button bt = (Button)sender;
if(bt.Name=="button1")
}
也不行,我也试过
[/Quote]
Button这里的Button是我自定义的Button不是.net里自带的Button,如果不行的话可不可以把报什么错贴上来?!
「已注销」
2008-07-28
打赏
举报
回复
这么简单的问题,简直就是白给分儿吗
Button button=(Button)sender;
switch(button.属性) //ID、Name、只要能把Button分开的属性都行
{
case "a":
break;
case "b":
break;
}
zhouchunping_99
2008-07-28
打赏
举报
回复
[Quote=引用 6 楼 ericzhangbo1982111 的回复:]
private void button_click(object sender,eventArgs e)
{
Button bt = (Button)sender;
if(bt.Name=="button1")
}
[/Quote]
也不行,我也试过
zhouchunping_99
2008-07-28
打赏
举报
回复
[Quote=引用 2 楼 CsToD 的回复:]
引用楼主 zhouchunping_99 的帖子:
多个自定义button公用一个事件处理,在事件处理中怎样得到是哪一个button触发的?
如:
button[i].click+=new EventHander(button_click);
private void button_click(object sender,eventArgs e)
{
这里sender就是发送者,在这里确定
if(sender==button1)
....
...
}
这个问题肯定很多人都知道,但我是沙发,希望楼主把100分都给我
[/Quote]
我早试过了,不行
CsToD
2008-07-28
打赏
举报
回复
[Quote=引用 7 楼 sunrobust 的回复:]
6楼正解, 2楼不对。
[/Quote]
你不要混淆视听!!!
==运算符对于引用类型,比较的是引用
if(sender==button1)
这样的写法是完全正确的
你自己去试试
不懂不要乱评论!
GhostAdai
2008-07-28
打赏
举报
回复
sender就是触发事件的对象,可以这样(假设你的自定义Button类名为MyButton):
MyButton btn = (MyButton)sender;
if(btn.name=="xxx你想判断的button名字"){
○○××;
}
zfh198601
2008-07-28
打赏
举报
回复
多个自定义button公用一个事件处理,在事件处理中怎样得到是哪一个button触发的?
如:
button[i].click+=new EventHander(button_click);
private void button_click(object sender,eventArgs e)
{
这里sender就是发送者,在这里确定
if(sender==button1)
....
...
}
sunrobust
2008-07-28
打赏
举报
回复
6楼正解, 2楼不对。
ericzhangbo1982111
2008-07-28
打赏
举报
回复
private void button_click(object sender,eventArgs e)
{
Button bt = (Button)sender;
if(bt.Name=="button1")
}
dreamsnake
2008-07-28
打赏
举报
回复
哭哦。没抢到。好多分呀。。。。。。
加载更多回复(4)
多次点击Toast只弹一次
系统内部维护了
一个
队列,用于处理待显示的Toast。当你连续调用`Toast.makeText()`并显示相同的文本时,后续的请求会被合并到同
一个
Toast
中
,除非你使用`Toast.cancel()`取消当前显示的Toast。因此,如果我们想要在...
C# Winform 窗体传值及接收返回值
例如,可以定义
一个
自定义
事件在`Form2`
中
处理用户操作后
触发
,并在`Form1`
中
订阅这个事件以获取返回值: ```csharp // Form2 public event EventHandler<string> ValueReturned; private void
button
1_Click...
vs2005 example
在Visual Studio 2005
中
,解决方案(Solution)是
一个
容器,它可以包含
一个
或
多个
项目(Project)。每个项目可能代表
一个
独立的可执行文件、库或者其他类型的代码资源。在"vs2005 example"
中
,可能包含
一个
主项目,该...
日期计算器 V1.0【含VB源码】
源文件可能包含了
多个
.vb文件,如Form1.vb(窗体设计及关联的
事件处理
程序)、Module1.vb(可能包含
公用
的函数或子程序),以及可能的资源文件。 在实际应用
中
,这样的日期计算器不仅限于个人使用,也可以作为其他...
鼠标绘图(visual basic 6.0)
《鼠标绘图技术在Visual Basic 6.0
中
的实现》 在计算机编程领域,图形用户界面(GUI)的开发是一项重要的任务,它...这不仅展示了VB6的强大之处,也为初学者提供了
一个
良好的实践平台,让他们在实践
中
学习编程知识。
C#
111,092
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章