1

我有一个 Checkedlistbox,它有 3 行高,大到可以显示大约 5 个元素。

只要我的元素少于 15 个,一切都运行良好。但是,如果我添加第 16 个元素,checkedlistbox 会显示一个水平滚动条,它占用 2 个项目行,这意味着所有项目现在只在一行上。

更糟糕的是,如果我删除了额外的项目,水平滚动条会保持原位。

我试过使用:

mycheckedlistbox.HorizontalScrollbar = false;
mycheckedlistbox.ScrollAlwaysVisible = false;

但这似乎没有任何效果。

我使用 multicolumn=true 模式,这似乎导致了这种不当行为

有没有办法阻止控件显示水平滚动条,而是使用垂直滚动条?

我在msdn 论坛上找到了一个有类似问题的人,但似乎他没有得到答案。

4

2 回答 2

1

滚动条使项目的布局双稳定。您可以通过敲击头部使滚动条消失:

  checkedListBox1.MultiColumn = false;
  checkedListBox1.MultiColumn = true;

这迫使 WF 重新创建控制手柄,闪烁可能几乎看不到。是的,垂直滚动条是可能的,但您必须放弃 MultiColumn。

于 2009-02-02T19:29:32.623 回答
1

好吧,从那里的答案和我进行的少数测试来看,这似乎是不可能的,但与此同时,我认为你正在试图打破这个目的。如果我在你的鞋子里,我会使用一个没有网格线的 DataGridView 和一个不能编辑的。您可以更好地控制网格中发生的事情,并且您可以自定义它比 CheckedListBox 更多。您可以获得与那里的 DataGridViewCheckBoxColumns 相同的效果。

(如果您需要代码示例,请在评论中发布,我会快速制作示例。)

于 2009-02-02T19:29:39.720 回答