【问题标题】:ListBox HorizontalScrollbar doen't work WinFormsListBox Horizo​​ntalScrollbar 不起作用 WinForms
【发布时间】:2025-12-17 20:20:09
【问题描述】:

我在 winforms 的 C# 应用程序中有一个 ListBox。 我需要在代码中添加到 ListBox CheckBoxes 中,并且当有很多 CheckBoxes 并且 ListBox 无法全部显示时,我需要显示 Horizo​​ntalScrollbar。 我已将 ListBox 放在 Window 上并将其 Horizo​​ntalScrollbar 设置为 true。我还设置了 ListBox 的最大高度和宽度。但是当我运行应用程序时,我看不到所有的 CheckBoxes... 有人可以帮忙吗?

这是添加复选框的代码:

            listBox1.HorizontalScrollbar = true;
            this.groupBox_ChooseTCPipConfg.Controls.Add(listBox1);
            CheckBox chk1 = new CheckBox();
            chk1.Text = "chk1";
            chk1.Location = new Point(2, 2);
            listBox1.Controls.Add(chk1);
            CheckBox chk2 = new CheckBox();
            chk2.Text = "chk2";
            chk2.Location = new Point(2,22);
            listBox1.Controls.Add(chk2);
            CheckBox chk3 = new CheckBox();
            chk3.Text = "chk3";
            chk3.Location = new Point(2, 42);
            listBox1.Controls.Add(chk3);
            CheckBox chk4 = new CheckBox();
            chk4.Text = "chk4";
            chk4.Location = new Point(2, 62);
            listBox1.Controls.Add(chk4);
            CheckBox chk5 = new CheckBox();
            chk5.Text = "chk5";
            chk5.Location = new Point(2, 82);
            listBox1.Controls.Add(chk5);
            CheckBox chk6 = new CheckBox();
            chk6.Text = "chk6";
            chk6.Location = new Point(2, 102);
            listBox1.Controls.Add(chk1);
            CheckBox chk7 = new CheckBox();
            chk7.Text = "chk7";
            chk7.Location = new Point(2, 122);
            listBox1.Controls.Add(chk7);
            CheckBox chk8 = new CheckBox();
            chk8.Text = "chk8";
            chk8.Location = new Point(2, 142);
            listBox1.Controls.Add(chk8);
            CheckBox chk9 = new CheckBox();
            chk9.Text = "chk9";
            chk9.Location = new Point(2, 162);
            listBox1.Controls.Add(chk9);
            CheckBox chk10 = new CheckBox();
            chk10.Text = "chk10";
            chk10.Location = new Point(2,202);
            listBox1.Controls.Add(chk10);

当我运行应用程序时,我只能看到前 7 个复选框......

【问题讨论】:

    标签: c# .net winforms listbox


    【解决方案1】:

    您没有'ListBox 滚动,因为您没有向其中添加任何项目。您只需将CheckBox 控件放入其中。仅当您需要很多项目时才会出现滚动。

    为此,请使用FlowLayoutPanel 控件。

    下面是应该如何为FlowLayoutPanel 设置属性

    【讨论】:

      【解决方案2】:

      尝试设置ListBox.HorizontalExtent

      不要忘记阅读以上 msdn 参考的备注。

      【讨论】: