С моей MainForm я называю следующее, чтобы открыть новую формуSingle нить вопрос квартиру
MyForm sth = new MyForm();
sth.show();
Все прекрасно работает, однако эта форма имеет выпадающий, что, когда я включаю его AutoCompleteMode предложить и добавить, я получил это исключение при показе формы:
Текущий поток должен быть установлен в режим однопоточной квартиры (STA) до того, как вызовы OLE могут быть выполнены. Убедитесь, что ваша основная функция имеет STAThreadAttribute, отмеченный на нем.
Я поставил этот атрибут на моей основной функции по требованию, за исключением:
[STAThread]
static void Main(string[] args)
{ ...
Могу ли я пожалуйста получить некоторую помощь, как понять, что может быть неправильным.
Пример кода:
private void mainFormButtonCLick (object sender, EventArgs e)
{
// System.Threading.Thread.CurrentThread.SetApartmentState(ApartmentState.STA); ?
MyForm form = new MyForm();
form.show();
}
Дизайнер:
this.myCombo.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.myCombo.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.myCombo.FormattingEnabled = true;
this.myCombo.Location = new System.Drawing.Point(20, 12);
this.myCombo.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5);
this.myCombo.Name = "myCombo";
this.myCombo.Size = new System.Drawing.Size(430, 28);
this.myCombo.Sorted = true;
this.myCombo.TabIndex = 0; phrase";
Настройка источника данных
public MyForm(List<string> elem)
{
InitializeComponent();
populateColorsComboBox();
PopulateComboBox(elem);
}
public void PopulateComboBox(List<string> list)
{
this.myCombo.DataSource = null;
this.myCombo.DisplayMember = "text";
this.myCombo.DataSource = list;
}
Что делать, если вы очищаете и перестраиваете проект? –
Вы видели этот похожий [вопрос] (http://stackoverflow.com/questions/4685237/how-can-i-make-a-background-worker-thread-set-to-single-thread-apartment)? – Cdeez
Как вы показываете форму? В пределах основной нити или разделенной нити? –