我在程序中利用循环动态添加了10个按钮,现在我要给这些动态添加的按钮添加事件,应该怎么做?
解决方案 »
- DatagridView 数字列右对齐 没有效果
- 高手帮我看个存储过程,很简单的
- 100分 C#安装包升级制作问题请教
- 关于C#运行的问题
- ParseHTML
- 请教一个asp.net常用的数据insert更新的问题,你也可能正要解决的
- ◆◆◆请问ViewState存不了多维数组类型的数据吗!???◆◆◆
- Excel 操作遇到的问题
- 如何将tabControl的页头隐藏掉?
- 在同一个WEBFORM中,如何在.cs文件中调用.aspx中的函数呢?
- C# 如何更改"网络驱动器"盘符(有连接好的代码)
- 分析器错误信息: 未能加载文件或程序集“System.Core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”或它的某一个依赖项。系统找不到指定的文件。
private void button1_Click(object sender, EventArgs e)
{
//Do something Here
} private void AddClickHandler(Button[] buttons)
{
foreach(Button b in buttons)
{
b.Click +=button1_Click;
}
}
上面写错了,应该是Click。不是OnClick^
private void AddButton()
{
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.ID = "btn" + i.ToString();
btn.Text = "删除";
btn.Click += new System.EventHandler(Button1_Click);
pnl.Controls.Add(btn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
Response.Redirect("Default8.aspx");
}
{
Button[] MyButton = new Button[10] ;
for (int i=0;i<MyButton.Length;i++)
{
MyButton[i] = new Button();
MyButton[i].Name = MyButton[i].Text = "btn" + (i).ToString();
MyButton[i].Click += new EventHandler(ButtonClick);
} this.Controls.AddRange(MyButton);
} private void ButtonClick(object sender, EventArgs e)
{
MessageBox.Show(((Button)sender).Text);
}
{
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.ID = "btn" + i.ToString();
btn.Text = "删除";
btn.Click += new System.EventHandler(Button1_Click);
pnl.Controls.Add(btn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
Response.Redirect("Default8.aspx");
}
{
for (int i = 0; i < 10; i++)
{
Button btn = new Button();
btn.ID = "btn" + i.ToString();
btn.Text = "删除";
btn.Click += new System.EventHandler(Button1_Click);
pnl.Controls.Add(btn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
Button button = (Button)sender;
Response.Redirect("Default8.aspx");
}
{
}protected void btnAddDL_Click(object sender, EventArgs e)
{
intDropDownListNum = intDropDownListNum + 1;
AddButton(); }private void AddButton()
{
for (int i = 0; i < intDropDownListNum; i++)
{
Button btn = new Button();
btn.ID = "btn" + i.ToString();
btn.Text = "删除";
btn.Click += new System.EventHandler(Button1_Click);
pnl.Controls.Add(btn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
intDropDownListNum = intDropDownListNum - 1;
}
{
Button[] MyButton = new Button[10] ;
for (int i=0;i<MyButton.Length;i++)
{
MyButton[i] = new Button();
MyButton[i].Name = MyButton[i].Text = "btn" + (i).ToString();
MyButton[i].Click += new EventHandler(ButtonClick);
} this.Controls.AddRange(MyButton);
} private void ButtonClick(object sender, EventArgs e)
{
MessageBox.Show(((Button)sender).Text);
}[
protected void Page_Load(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(Request.QueryString["action"]) && Request.QueryString["action"] == "add")
{
intDropDownListNum = int.Parse(Request.QueryString["num"]);
AddButton();
}
} protected void btnAddDL_Click(object sender, EventArgs e)
{
intDropDownListNum = intDropDownListNum + 1;
Response.Redirect("WebForm2.aspx?action=add&num=" + intDropDownListNum.ToString());
}
private void AddButton()
{
for (int i = 0; i < intDropDownListNum; i++)
{
Button btn = new Button();
btn.ID = "btn" + i.ToString();
btn.Text = "删除";
btn.Click += new System.EventHandler(Button1_Click);
this.form1.Controls.Add(btn);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
intDropDownListNum = intDropDownListNum - 1;
}
Button btnSubmit = new Button();
btnSubmit.Name = i.ToString();
btnSubmit.Text = "确定";
btnSubmit.Top = 160;
btnSubmit.Left = 150;
btnSubmit.BackColor = Color.Green; btnSubmit.Name = groupNames[i];//把权限组名称传递给按钮的Name属性 //委托3次
btnSubmit.Click += new System.EventHandler(this.btnSubmit_Click);//委托给一个方法
/// <summary>
/// 功能:委托指向的方法
/// </summary>
/// <param name="sender">可以强制转换成按钮类型并可以通过该变量的Name属性得到按钮的Name属性</param>
/// <param name="e"></param>
private void btnSubmit_Click(object sender, EventArgs e)
{
//MessageBox.Show("呵呵");--测试委托成功否
Button btn = (Button)sender;
MessageBox.Show(btn.Name.ToString());
}
应该是框架本身的问题,当你点你的按钮的时候
会刷新页面
代码会进入到pageload,这时候,你动态添加的按钮其实已经失效了
所以,不会进入到你事先绑定的事件
{
i++;
Button btn = new Button();
btn.Name = "Button" + i.ToString();
btn.Text = "Button" + i.ToString();
btn.BackColor = Color.Yellow;
btn.Width = 50;
btn.Height = 50;
btn.Location = new System.Drawing.Point(x, 30);
x = x + 60;
btn.Click += new EventHandler(Button2_click);
this.Controls.Add(btn);
}
private void Button2_click(object sender, EventArgs e)
{
string str="";
Button button = (Button)sender;
str = button.Text;
switch (str)
{
case "Button1":
{
label1.Text = "1";
break;
}
case "Button2":
{
label1.Text = "2";
break;
}
case "Button3":
{
label1.Text = "3";
break;
}
}
}
page_load(object sender, EventArgs e)
{
AddButton();}
就对了,不然回发是没法绑定加入的button的