ИЗМЕНЕНО ДЛЯ ЛУЧШЕГО ПОНИМАНИЯ
Я создал пользовательский элемент управления с возможностью настройки некоторых глобальных переменных.
private string[] LBTitles = new string[1] { "Rien" };
//...
[CategoryAttribute("WildData"), DescriptionAttribute("Tableau des noms des titres au dessus de le listbox")]
public string[] Titles
{
get { return LBTitles; }
set { LBTitles = value; OnColumns(EventArgs.Empty); }
}
OnColums делает много вещей для форматирования элемента управления.Одним из других является:
int vLongest = 0;
//...
//Si le plus long est plus petit que le titre de la colonne
if (vLongest < LBTitles[i].Length)
{
vLongest = LBTitles[i].Length;
}
Выше для моего контроля.Все работает отлично, это замечательный день и т. Д.
Теперь, когда дело доходит до добавления его в форму: - Я добавляю это, все в порядке - Я изменяю свойства через дизайн, все в порядке - япопробуйте запустить ... есть проблема.
Когда я собираю, он добавляет в InitializeComponent () следующий код:
this.wildList1 = new WildList.WildList();
//Which is ok but also it add, everytime I build, this:
//
// wildList1
//
this.wildList1.Colors = new string[] {
null};
this.wildList1.Font = new System.Drawing.Font("Courier New", 8F);
this.wildList1.Location = new System.Drawing.Point(211, 33);
this.wildList1.Name = "wildList1";
this.wildList1.Positions = new int[] {
0};
this.wildList1.Size = new System.Drawing.Size(238, 224);
this.wildList1.TabIndex = 16;
this.wildList1.Titles = new string[] {
null};
Добавляет строки кода, которые сбрасывают мои массивы,Зачем?Как я могу добраться до них?Или, по крайней мере, заставить их использовать значения, введенные программистом (иначе меня) в конструктор?
Потому что, когда он проходит через строку, которая его сбрасывает, он также вызывает свойство "set", которое вызывает OnColumns, которые затем пытаются делать вещи с пустыми массивами, которые вызывают сбой.