Вызывает исключение «ReadOnly управляющая коллекция» - при редактировании пользовательского интерфейса - PullRequest
2 голосов
/ 21 октября 2019

Я взял на себя чужой проект, и они использовали Krypton Toolkit. Когда я изменяю что-либо в пользовательском интерфейсе (то есть кнопку «Добавить», «Редактировать текст», «Добавить пункт меню»), я получаю следующее исключение:

this.kryptonHeaderGroupMain.Controls.Add (this.kryptonHeaderGroupMain.Panel);

Вызывает исключение "ReadOnly управляющая коллекция"

.. и это портит представление конструктора.

Чего мне не хватает?

Как рекомендовали некоторые, я пробовал, но все равно не получилось:

this.<kryptonControlsContainer>.Panel.Controls.Add(this.<otherControlName>);

1 Ответ

0 голосов
/ 23 октября 2019

Свойство Controls элемента управления KryptonHeaderGroup является коллекцией ReadOnly и поэтому не принимает дочерние элементы управления. Способ KryptonHeaderGroup был разработан так, что он имеет Panel, который действует как контейнер для его дочерних элементов управления. Вам нужно сделать следующее:

В режиме разработки:

Прежде чем добавлять какие-либо элементы управления, убедитесь, что вы выбрали панель, а не сам KryptonHeaderGroup. Обратите внимание на разницу в этих снимках экрана:

Don't select the KryptonHeaderGroup itself

Select its panel instead

Использование кода:

//kryptonHeaderGroup1.Controls.Add(new KryptonButton());        // Throws an exception.
kryptonHeaderGroup1.Panel.Controls.Add(new KryptonButton());    // Works fine.

Примечание: Та же логика применяется для других элементов управления, таких как KryptonGroupBox, KryptonGroup и KryptonSplitContainer.

...