2012-07-25 26 views
0

我想要有一组复选框,如CheckListBox和不同的背景着色。 有没有办法让我在运行时拥有这个组和编辑?c上的windowsform动态清单框#

我使用的代码波纹管,但它是不能被以不同的颜色背面:

  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); 不会帮助,因为没有滚动条,我不能使用选定的索引!

thanx提前。

回答

1

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

也许你将不得不创建自己的自定义列表框并重写OnDrawItem方法。 类似这样的:

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

     } 
    } 
+0

不会帮助,因为没有滚动条,我不能使用选定的索引(我想使用列表的好处)! – mefmef 2012-07-25 10:27:50

1

这样做!

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