动态添加按纽,如何获取当前点击按纽?

worldhj1 2008-08-23 02:35:32
Button a = new Button();
Button b = new Button();
this.Controls.Add(b);
this.Controls.Add(a);
a.Click += new EventHandler(play);
b.Click += new EventHandler(play);
public void play(object sender, EventArgs e)
{}

如何在play事件当中获取我当前点击的是哪个按纽?
谢谢。。
...全文
153 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
worldhj1 2008-09-04
  • 打赏
  • 举报
回复
我想放4个TEXTBOX。。。
让一个按纽对应一个TEXTBOX。老是捕捉不到TEXTBOX。。都显示在1个TEXTBOX里。
worldhj1 2008-08-24
  • 打赏
  • 举报
回复
UP~~~
vshirleyzhxl 2008-08-24
  • 打赏
  • 举报
回复
Button temp=new Button();
temp.Name=i.ToString();
五楼的这两句代码就解决了命名问题啊.
public void play(object sender, EventArgs e)
{
Button b = (Button)sender;
MessageBox.Show(b.Name);
}
一楼的这个就告诉你按的是哪个按钮了.

下面是通过点击button1来添加按钮,并计算位置
private void button1_Click(object sender, EventArgs e)
{
Button myButton = new Button();
buttoncount = buttoncount + 1;//私有变量,用于记录动态添加的按钮个数,以便计算坐标
myButton.Text = "新加按钮:" + buttoncount.ToString();
myButton.Name = "新加按钮名称:" + buttoncount.ToString();
myButton.Width = 90;
if (buttoncount % 2 == 1)
{
int buttonx = 5;
int buttony = (buttoncount / 2+1)*myButton.Height;
myButton.Left = buttonx;
myButton.Top = buttony;
}
else
{
int buttonx = 5+ myButton.Width;
int buttony = (buttoncount / 2 ) * myButton.Height;
myButton.Left = buttonx;
myButton.Top = buttony;
}
myButton.Click+=new EventHandler(myButton_Click);//注册事件处理,代码在下面
myButton.DoubleClick+=new EventHandler(myButton_DoubleClick);
this.groupBox1.Controls.Add(myButton);
}
注册事件处理
private void myButton_Click(object sender, EventArgs e)
{
if (sender.GetType() == typeof(Button))
{
Button tempbutton = (Button)sender;
string buttonname = tempbutton.Name;
string buttontext = tempbutton.Text;
string msgstr = "你按的按钮信息: 名称(" + buttonname + ") 按钮文本(" + buttontext + ")";
MessageBox.Show(msgstr);
}
}
flon 2008-08-24
  • 打赏
  • 举报
回复
请问5楼的,这样添加的话控件的命名问题怎么处理,又如何区分是按的哪个
LV_Q 2008-08-24
  • 打赏
  • 举报
回复
楼上正解
worldhj1 2008-08-24
  • 打赏
  • 举报
回复
我设置了按纽的TEXT和BackgroundImage背景图片

如何让TEXT不显示出来。。。
jryu2k5 2008-08-23
  • 打赏
  • 举报
回复
for(int i=0;i<10;i++)
{
Button temp=new Button();
temp.Name=i.ToString();
temp.click+=new EventHandler(temp_Click);
}
public void temp_Click(object sender, EventArgs e)
{
//有需要进行不同的操作就使用swith进行筛选吧
}
worldhj1 2008-08-23
  • 打赏
  • 举报
回复
有没人回答。。动态添加10个按纽和事件?
worldhj1 2008-08-23
  • 打赏
  • 举报
回复
原来如此,多谢 ZengHD 朋友。
如何动态添加10个按纽和事件?3Q
gaocumt 2008-08-23
  • 打赏
  • 举报
回复
同意楼上
ZengHD 2008-08-23
  • 打赏
  • 举报
回复

public void play(object sender, EventArgs e)
{
Button b = (Button)sender;
MessageBox.Show(b.Name);
}

private void Form1_Load(object sender, EventArgs e)
{
Button a = new Button();
a.Name = "a";
Button b = new Button();
b.Name = "b";
this.Controls.Add(b);
this.Controls.Add(a);
a.Click += new EventHandler(play);
b.Click += new EventHandler(play);
}

111,118

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧