У меня есть ToolStripDropDownButton, содержащий ToolStripControlHost, содержащий CheckedListBox в C#, например так:ToolstripControlHost'ed CheckedListBox проблема переполнения
checkedListBox = new CheckedListBox();
dropDownButton = new ToolStripDropDownButton("Button");
host = new ToolStripControlHost(checkedListBox);
dropDownButton.DropDownItems.Add(host);
Все отлично, пока количество элементов в CheckedListBox работает растет checklistbox вне экрана границ и ToolStripDropDown рисует «крошечную треугольную кнопку» вверху и внизу, чтобы прокручивать меню вверх или вниз. Всякий раз, когда я нажимаю для прокрутки, я сбой в System.Windows.Forms.ToolStripItemCollection.this[].get
с этим исключением:
Индекс был за пределами допустимого диапазона. Должен быть неотрицательным и меньше размера коллекции. Имя параметра: индекс
Я подозреваю, что, поскольку ToolStripDropDownButton только действительно имеет один элемент (узел), это является причиной моего исключения. Если это так, у кого-нибудь есть обходные пути?
Я нашел один обход, который, по крайней мере, предотвратит сбой: добавьте второй элемент dropDownButton. См. Код выше –
Спасибо John. В конце концов я переработал логику, но ваше объяснение по-прежнему весьма полезно. –