请问在C#中,我动态生成多个控件(很多个)后,如何确定使用的是那一个控件的事件?
展开全部
1.动态生成的控件可能是Button这种会自动回传的控件,或者TextBox这种人为设置AutoPostBack属性才可以回传的控件。
2.无论是否是动态生成的控件,.NET都会正确的导到控件引发的事件。(动态生成的控件的加载在触发回传事件之前完成)。
3.如果你将所有动态生成的控件的OnClick之类的事件都绑定到同一个事件处理函数。
那么你可以通过函数的参数sender ,正确转化类型,判断ID来确定是哪个控件的事件。
4.从ASP.NET的运行机理上,触发回传的控件的ID会被保存在隐藏字段“__EVENTTARGET”里面。
所以你也可以通过Request.Form["__EVENTTARGET"]取出控件ID,来确定是哪个控件引发的回传~
以上~
2.无论是否是动态生成的控件,.NET都会正确的导到控件引发的事件。(动态生成的控件的加载在触发回传事件之前完成)。
3.如果你将所有动态生成的控件的OnClick之类的事件都绑定到同一个事件处理函数。
那么你可以通过函数的参数sender ,正确转化类型,判断ID来确定是哪个控件的事件。
4.从ASP.NET的运行机理上,触发回传的控件的ID会被保存在隐藏字段“__EVENTTARGET”里面。
所以你也可以通过Request.Form["__EVENTTARGET"]取出控件ID,来确定是哪个控件引发的回传~
以上~
展开全部
事件处理器的方法中有一个参数,就是object sender
这个参数就是控件本身的对象,你可以用as关键字得到控件的数据类型
例如你生成的是Button控件
你可以这样写,Button button1=sender as Button;
button1.Text=".....";
这个参数就是控件本身的对象,你可以用as关键字得到控件的数据类型
例如你生成的是Button控件
你可以这样写,Button button1=sender as Button;
button1.Text=".....";
追问
不只1个啊 我需要生成很多个~
追答
是啊,sender就是动态的啊?哪个控件的事件发生了sender就是哪个控件
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你想要的是不是点击哪个Button就触发哪个button的事件?
如果是 你可以为你的每个控件绑定onclick事件,也就是用event。
这样你每次点击的话 他就会自动触发该事件。
另外2楼得办法也可以
如果是 你可以为你的每个控件绑定onclick事件,也就是用event。
这样你每次点击的话 他就会自动触发该事件。
另外2楼得办法也可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我在tabControl1.TabPages动态生成ListView控件,可以通过此命令设置listview里的内容为111“:
(( ListView) tabControl1.TabPages[0].Controls[0]).Items.Add("111");
(( ListView) tabControl1.TabPages[0].Controls[0]).Items.Add("111");
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Label lab = new Label();
lab.Text = "&Save";
lab.Size = new Size(100,30);
lab.Location = new Point(0,0);
this.Controls.Add(lab);
lab.Text = "&Save";
lab.Size = new Size(100,30);
lab.Location = new Point(0,0);
this.Controls.Add(lab);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询