【问题标题】:dynamic checklistbox in windowsform on c#c#上windows窗体中的动态清单框
【发布时间】:2012-07-25 18:30:38
【问题描述】:

我想要一组复选框,例如 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); 无济于事,因为没有滚动条,我无法使用选定的索引!

提前感谢。

【问题讨论】:

    标签: c# forms checkbox


    【解决方案1】:

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

    也许您必须创建自己的自定义列表框并覆盖 OnDrawItem 方法。 像这样的:

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

    【讨论】:

    • 不会有帮助,因为没有滚动条,我不能使用选定的索引(我想利用列表的好处)!。
    【解决方案2】:

    这样做!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-29
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-04
      • 2013-11-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多