C# 在winform c中动态添加复选框检查事件#
我在表单上动态添加了checkboxex。选中复选框后,我想执行一些操作。下面是我使用的代码C# 在winform c中动态添加复选框检查事件#,c#,checkbox,C#,Checkbox,我在表单上动态添加了checkboxex。选中复选框后,我想执行一些操作。下面是我使用的代码 private void GenerateSidePanelControls() { try { int topPosition = 15; foreach (SideMenuItem sItem in _sideMenuItemList) { CheckBo
private void GenerateSidePanelControls()
{
try
{
int topPosition = 15;
foreach (SideMenuItem sItem in _sideMenuItemList)
{
CheckBox objLabel = new CheckBox();
objLabel.Name = sItem.TagName;
objLabel.Text = sItem.TagName;
objLabel.Left = 15;
objLabel.Top = topPosition;
objLabel.Font = _normalFont;
sidePanel.Controls.Add(objLabel);
topPosition += 35;
objLabel.CheckedChanged += new System.EventHandler(this.SideLabel_Click);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void SideLabel_Click(object sender, EventArgs e)
{
int topPosition = 20;
try
{
Cursor = Cursors.Default;
CheckBox objLabel = (CheckBox)sender;
objLabel.Name = objLabel.ToString();
objLabel.Font = _boldFont;
foreach (Control ctrl in sidePanel.Controls)
{
if (ctrl is CheckBox)
{
if (((CheckBox)objLabel).Checked == true)
{
TextBox txt = new TextBox();
txt.Text = "Checked";
sidePanel.Controls.Add(objLabel);
topPosition += 25;
}
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我在运行时选中复选框之前得到结果。我需要在运行时选中复选框后执行操作。您需要添加新创建的文本框:
TextBox txt = new TextBox();
txt.Text = "Checked";
//sidePanel.Controls.Add(objLabel);
sidePanel.Controls.Add(txt);
topPosition += 25;
我根据您的评论回答
当我在运行时选中复选框时,什么也没有发生。
需要考虑的其他说明:
- 您正在循环使用
,而没有使用foreach ctrl
。因此,循环是无用的李>ctrl
- 你可以换这条线
简单地if (((CheckBox)objLabel).Checked == true)
if (objLabel.Checked)