0

我想要一组复选框,例如具有不同背景颜色的 CheckListBox。有什么方法可以让我拥有这个组并在运行时进行编辑?

我使用下面的代码,但它不能有不同的背景颜色:

            foreach (var color in _colors)
            {
                var tmpCheckBox = new CheckBox
                                    {
                                       // Location = objLocation,
                                        BackColor = color,
                                        Text = color.Name
                                    };
                objLocation.X = objOffset;
                objLocation.Y += tmpCheckBox.Height + objOffset;
                clbColorAnalyzeResult.Items.Add(tmpCheckBox);
            }

只是提到这一点:clbColorAnalyzeResult.Controls.Add(tmpCheckBox); 无济于事,因为没有滚动条,我无法使用选定的索引!

提前谢谢。

4

2 回答 2

1

您必须将复选框添加到Controls表单的属性中。

也许您将不得不创建自己的自定义列表框并覆盖 OnDrawItem 方法。像这样的东西:

class MyCheckedListBox : CheckedListBox
    {
        protected override void OnDrawItem(DrawItemEventArgs e)
        {

        }
    }
于 2012-07-25T10:23:22.513 回答
1

做这个!

您应该将复选框添加到 aPanel并设置AutoScroll为 true,以获取滚动条。您可以订阅GotFocusandLostFocus事件以确定选择了哪个复选框。

于 2012-07-25T10:29:24.097 回答