社区
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)
{
...
}
...全文
348
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只弹一次提示
C# Winform 窗体传值及接收返回值
C# Winform 窗体传值及接收返回值 通过构造传值 通过属性传值
vs2005 example
来自msdn的例子,在
一个
解决方案里面,使用多种控件
日期计算器 V1.0【含VB源码】
计算连个日期之间的天数,月数,年数,绿色小软件,使用起来非常方便
鼠标绘图(visual basic 6.0)
本程序是使用 visual basic 6.0 软件来实现的。在界面的图片去进行绘图,同时通过单选框来选择线条的宽度,通过
公用
对话框来选择线条的颜色,还可以对绘图区进行清除!
C#
111,112
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章