Горизонтальная полоса прокрутки ListBox не работает WinForms - PullRequest
1 голос
/ 08 ноября 2011

У меня есть ListBox в Winforms, C # приложение.Мне нужно добавить в ListBox CheckBoxes в коде, и мне нужно, чтобы HorizontalScrollbar появлялся, когда есть много CheckBoxes и ListBox не может показать их все.Я поместил ListBox в окно и установил его горизонтальную полосу прокрутки на 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 флажков ....

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

У вас нет ListBox прокрутки, потому что вы не добавили к нему никаких предметов.Вы просто помещаете элементы управления CheckBox внутрь.Прокрутка выглядит просто, если вам нужно много элементов.

Для таких целей используйте FlowLayoutPanel control.

Вот как свойства должны быть установлены для FlowLayoutPanel

enter image description here

1 голос
/ 08 ноября 2011

Попробуйте установить ListBox.HorizontExtent

Не забудьте прочитать примечания к вышеуказанной ссылке msdn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...