【问题标题】:How to show scroll button in ListBox如何在 ListBox 中显示滚动按钮
【发布时间】:2011-02-01 23:00:18
【问题描述】:

我正在向列表框添加用户控件。一切正常,但我有一个问题,当我添加 10 个用户控件时,我希望列表框应该显示滚动,以便我可以选择列表框末尾的项目,但即使将显示滚动属性设置为 true,也不会发生这种情况。

这是我的代码

UserControl1 button = new UserControl1();

button.Location = new Point(10, 100 * i + 10);
button.Size = new System.Drawing.Size(560, 59);
button.MessageUsername = "Wao this is great";
listBox1.Controls.Add(button);

我对想法持开放态度

这是你可以看到没有滚动的图片

【问题讨论】:

    标签: c# winforms custom-controls scroll


    【解决方案1】:

    people 从哪里得知ListBox 是一个容器控件?这不是ListBox 的用途,它的设计目的不是为了容纳使用Controls.Add 方法添加的子控件。您应该使用其恰当命名的Items property 添加(或以其他方式管理)它显示的项目。

    没有可见的滚动条,因为您刚刚将每个子控件叠加在一起。 ListBox 本身并不知道它们,所以它不知道它需要滚动它们。

    您应该使用某种类型的面板控件,要么是Panel 控件本身,要么是更好的自动为您管理布局的控件。调查FlowLayoutPanelTableLayoutPanel。所有这些控件都有一个AutoScroll property,您可以将其设置为“True”,当滚动条的内容超出可见的客户区域时,它将自动显示滚动条。

    【讨论】:

    • FlowLayoutPanel 是我一直在寻找的东西。谢谢
    【解决方案2】:

    ListBox 不是容器! 对于自定义列表框项目,您应该使用 ownerdraw 绘制模式。但在你的情况下,这是不对的。作为变体,我可以建议您使用简单的面板和独立的滚动框来移动(滚动)面板上的每个控件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      • 2016-08-17
      • 2020-12-25
      • 1970-01-01
      相关资源
      最近更新 更多