C# 在windows窗体中动态添加复选框
我已将复选框动态添加到面板。现在,我如何获得带有“您已选中1或2或3…”的警报消息。当选中复选框时C# 在windows窗体中动态添加复选框,c#,winforms,C#,Winforms,我已将复选框动态添加到面板。现在,我如何获得带有“您已选中1或2或3…”的警报消息。当选中复选框时 CheckBox[] premiumticket = new CheckBox[50]; private void Form1_Load(object sender, EventArgs e) { var panel1 = new Panel() { Size = new Size(600, 70), Location = new
CheckBox[] premiumticket = new CheckBox[50];
private void Form1_Load(object sender, EventArgs e)
{
var panel1 = new Panel()
{
Size = new Size(600, 70),
Location = new Point(20, 130),
BorderStyle = BorderStyle.FixedSingle
};
for (int i = 0; i < 20; i++)
{
premiumticket[i]=new CheckBox();
premiumticket[i].Text=(i+1).ToString();
premiumticket[i].Name=(i+1).ToString();
premiumticket[i].Location=new Point(x,y);
panel1.Controls.Add(premiumticket[i]);
x = x - 55;
if (x < 55)
{
y = y + 20;
x = 550;
}
}
x = 550; y = 10;
Controls.Add(panel1);
}
CheckBox[]premiumticket=新建复选框[50];
私有void Form1\u加载(对象发送方、事件参数e)
{
var panel1=新面板()
{
尺寸=新尺寸(600,70),
位置=新点(20,130),
BorderStyle=BorderStyle.FixedSingle
};
对于(int i=0;i<20;i++)
{
premiumticket[i]=新复选框();
premiumticket[i].Text=(i+1).ToString();
premiumticket[i].Name=(i+1).ToString();
premiumticket[i]。位置=新点(x,y);
面板1.控件。添加(premiumticket[i]);
x=x-55;
如果(x<55)
{
y=y+20;
x=550;
}
}
x=550;y=10;
控件。添加(面板1);
}
为每个复选框动态创建事件,并在其上添加警报代码为每个复选框添加事件处理程序:
public void Checkbox_CheckedChanged(Object sender, EventArgs e) {
CheckBox cb = (CheckBox)sender;
MessageBox.Show( cb.Name + " was clicked!");
}
for (int i = 0; i < 20; i++) {
premiumticket[i] = new CheckBox();
premiumticket[i].OnCheckChanged += new EventHandler( Checkbox_CheckedChange );
...
}
public void Checkbox\u CheckedChanged(对象发送方,事件参数e){
复选框cb=(复选框)发送方;
MessageBox.Show(cb.Name+“已单击!”);
}
对于(int i=0;i<20;i++){
premiumticket[i]=新复选框();
premiumticket[i].OnCheckChanged+=新事件处理程序(复选框\u CheckedChange);
...
}
将此项添加到for循环中:
premiumticket[i].OnCheckChanged += new EventHandler( premiumTicketChanged );
复选框切换的处理程序:
public void premiumTicketChanged (Object sender, EventArgs e)
{
int ticketCount = premiumticket.Count(c => c.Checked);
MessageBox.Show( string.Format("You have checked {0} checkboxes....", ticketCount));
}
您的实现可能是另一个。动态添加控件后,可以使用AddHandler管理此控件的事件。
请记住,将checkbox autopostback属性设置为true。如果单击一个复选框,则不会显示任何按钮。这表明您已选中(复选框的名称)checkbox autopostback是ASP.Net概念。WinForms在上面的问题中被使用。这是真的。对不起,我误解了上下文。我没有其他联系方式,所以我将在这里输入评论。不要添加管道字符(
|
)来分隔带有R
标记的代码块的数据列。这是对数据的故意破坏。这些伪管道字符阻止将文本粘贴到R
解释器中。我不知道你对这个故意破坏的问题的编辑是如何通过最近的审查()的,但它不应该通过。我回滚了编辑。ok@MatthewLundberg如果我做错了什么,我很抱歉谢谢你的建议,我会记住的
var checkBox = new CheckBox { ID = "WCCheckBox" + item.ItemID.ToString(), ItemID = item.ItemID, Checked = item.UserValue == "1", CssClass = "wounditem" };