我自己想通过类来手写生成许多个控件,而不是用手从左边的工具箱拖过来,for (int i = 1; i <= 10; i++)
{
Button btnRpt = new Button();
btnRpt.Location = new System.Drawing.Point(24, 36 + i*10);
btnRpt.Name = "btnTest" + i;
btnRpt.Size = new System.Drawing.Size(150, 23);
btnRpt.TabIndex = 0;
btnRpt.Text = "测试" + i;
btnRpt.UseVisualStyleBackColor = true;
btnRpt.Click += new System.EventHandler(btnTest1_Click);
panel1.Controls.Add(btnRpt);
}
但遇到一个问题:btnRpt.Click += new System.EventHandler(btnTest1_Click);这个事件如何实现循环生成呢?要不要另外写出对应的函数btnTest1_Click?
{
Button btnRpt = new Button();
btnRpt.Location = new System.Drawing.Point(24, 36 + i*10);
btnRpt.Name = "btnTest" + i;
btnRpt.Size = new System.Drawing.Size(150, 23);
btnRpt.TabIndex = 0;
btnRpt.Text = "测试" + i;
btnRpt.UseVisualStyleBackColor = true;
btnRpt.Click += new System.EventHandler(btnTest1_Click);
panel1.Controls.Add(btnRpt);
}
但遇到一个问题:btnRpt.Click += new System.EventHandler(btnTest1_Click);这个事件如何实现循环生成呢?要不要另外写出对应的函数btnTest1_Click?
解决方案 »
- 请问在存储过程的源代码在哪里?在C#中能找到吗?我用的是SQL数据库。
- c# 同工程 2个窗体通信
- 求ArrayList排序的问题
- 怎样设置让datagridview的标题行无法拖动,第一列也无法拖动?
- DataList数据绑定时图片不能显示?高手请进
- 如何操作一个DIV元素
- google中国编程挑战赛-练习题之二(500分题)
- 谁做过扫描啊,怎么做啊,急啊,我找组件也找到啊,什么组件啊
- picturebox上如何添加文字(C#)
- 我想从数据库中取出离DateTime.Now时间最近的数据该怎样取?
- 想问一下 关于 Dictionary<string,string> 错误处理 怎么做? 谁有经验 说说
- 一个关于拼图算法的问题(倾家荡产高分结贴)
if (sender.Name == "btnTest1") MessageBox.Show("you click button1");
if (sender.Name == "btnTest2") MessageBox.Show("you click button2");
{
Button btnRpt = new Button();
btnRpt.Location = new System.Drawing.Point(24, 36 + i*10);
btnRpt.Name = "btnTest" + i;
btnRpt.Size = new System.Drawing.Size(150, 23);
btnRpt.TabIndex = 0;
btnRpt.Text = "测试" + i;
btnRpt.UseVisualStyleBackColor = true;
btnRpt.CommandArgument = i.ToString();
btnRpt.Click += new System.EventHandler(btnClick);
panel1.Controls.Add(btnRpt);
}这样在btnClick方法中就可以知道CommandArgument了
private void btnClick(Object source,EventArgs args)
{
String commandArgument = ((Button)source).CommandArgument;
}
Button btnRpt = sender as Button ;
if(btnRpt ==null)return;
if(btnRpt.Name == "btnTest1"){}
else if(){}.......
进来一看标题,原来是动态生成控件.btnRpt.Click += new System.EventHandler(btnTest1_Click);这个事件如何实现循环生成呢?
不需要弄那么麻烦,在一个事件中根据控件ID来执行相应条件的动作.要不要另外写出对应的函数btnTest1_Click?
要.否则会报错