【发布时间】:2016-10-18 10:25:42
【问题描述】:
我的应用程序运行不稳定,因为我必须在一个表单中设置多个复选框。我从某个消息来源听说,我应该尝试在CheckedListBox 中填充复选框。但我不知道我怎么能意识到这一点。其中,我想通过CheckBox 向您展示我的解决方案。
谁能告诉我如何用CheckedListBox 填充它?
for (int i = 1; i <= maxTask; i++)
{
Label labelTasks = new Label();
labelTasks.Text = "A" + i;
labelTasks.Width = 28;
labelTasks.Height = 13;
labelTasks.Location = new Point(boundX_Label, boundY_Label);
boundX_Label += 26;
panel.Controls.Add(labelTasks);
CheckBox checkBox = new CheckBox();
checkBox.Name = String.Format("checkboxTask{0}", i);
checkBox.GotFocus += checkBox_GotFocus;
checkBox.LostFocus += checkBox_LostFocus;
checkBox.Text = "";
checkBox.Width = 20;
checkBox.Height = 15;
checkBox.Location = new Point(boundX_ChkBox, boundY_ChkBox);
boundX_ChkBox += 26;
checkBox.CheckedChanged += new EventHandler(checkBox_CheckedChanged);
panel.Controls.Add(checkBox);
}
此代码将填充一行复选框,如显示其中。我的应用程序有大约 200 个此复选框行。
【问题讨论】:
-
CheckedListBox只是一个美化的列表框。添加到 Items 集合 -
这样就不能解决问题?
-
我不知道您可能遇到什么(其他)问题。帖子说您不知道如何使用选中列表框。我解释了那个:
myCLB.Items.Add("A34") -
但是如何为 CheckBoxList 中的每个 CheckBox 分配一个名称?您的 Add("A34") 示例是 CheckBox 的文本,当我没有错时。而且我不需要文本,应该只有没有文本的复选框,但是稍后在 Eventhandler 中使用它们我想给它们一个名字。与上面的普通复选框一样。
-
问题中的屏幕截图显示每个复选框都需要一个文本,因此
CheckedListBox似乎是一个不错的选择。您可以找到CheckedIndices或CheckedItems或使用GetItemChecked检查是否检查了特定项目。如果您分享有关您的需求的更多背景信息,您可能会获得更有效的帮助。
标签: c# winforms checkbox checkedlistbox