C # Combobox и TabControl горе - PullRequest
       3

C # Combobox и TabControl горе

0 голосов
/ 27 декабря 2010

enter code here У меня есть TabControl на форме, а на вкладках есть комбо-боксы.

Когда форма OnLoad, я заполняю ListItems в ComboBox и пытаюсь установить значения по умолчанию в string.Empty.

Однако ComboBox.SelectedText = string.Empty работает только для первой вкладки TabPage. Другие ComboBox игнорируют команду и принимают значение по умолчанию в качестве первого элемента в списке. Почему это так? Как я могу преодолеть это?

Все комбинированные списки настраиваются этой функцией

public static void PrepareComboBox(ComboBox combobox, FieldValueList list)
{
     combobox.DropDownStyle = ComboBoxStyle.DropDown;
     combobox.AutoCompleteSource = AutoCompleteSource.ListItems;
     combobox.AutoCompleteMode = AutoCompleteMode.Suggest;
     combobox.DataSource = list.DataSource;
     combobox.DisplayMember = list.DisplayMember;
     combobox.ValueMember = list.ValueMember;
     combobox.Text = string.Empty;
     combobox.SelectedText = string.Empty;

}

Ответы [ 2 ]

2 голосов
/ 27 декабря 2010

Я обнаружил, что причина может заключаться в том, что ComboBox не "активен", пока они не будут показаны хотя бы один раз.Вы можете видеть, что при первом выборе TabPage загрузка занимает немного больше времени.Я предполагаю, что он создает / инициализирует дочерние элементы управления в первый раз.

Для этого я вызываю tabControl.SelectTab () перед изменением свойств значения, и это работает ... хотя это похоже на хак.

0 голосов
/ 27 декабря 2010

Это связано с привязкой данных. С этим ничего не поделаешь, кроме префикса источника данных с пустой / фиктивной записью.

...