Intereting Posts

C # Show Отображение диалогов

У меня есть Dialog Box (импортер), которое я использую для выбора файла, который я хочу импортировать в приложение. В этом Dialog Box (Импортер) также есть другое диалоговое окно (файл), которое является OpenFileDialog .

Код работает примерно так:

 //Main File if (Importer.ShowDialog == DialogResult.Ok){ // Start Import } //Importer File OnDoubleClick of TextBox if(File.ShowDialog == DialogResult.Ok){ // Find File } 

Однако во втором ShowDialog я всегда получаю следующую ошибку:

 An unhandled exception of type 'System.Threading.ThreadStateException' occurred in System.Windows.Forms.dll Additional information: Current thread must be set to single thread apartment (STA) mode before OLE calls can be made. Ensure that your Main function has STAThreadAttribute marked on it. This exception is only raised if a debugger is attached to the process. 

Это проблема с streamами, и как мне с этим справиться.

С нетерпением жду Вашего ответа. С уважением, Джеймс

– Обновите еще один код, чтобы помочь. Это все внутри первой формы .ShowDialog ()

 private void fileNametxt_DoubleClick(object sender, EventArgs e) { myth = new Thread(new System.Threading.ThreadStart(ChooseFile)); myth.ApartmentState = ApartmentState.STA; myth.Start(); while(myth.ThreadState != ThreadState.Aborted || myth.ThreadState != ThreadState.Stopped) { fileNametxt.Text = FileName; } fileNametxt.Text = FileName; } private void ChooseFile() { openFileDialog.ShowDialog(); if (openFileDialog.FileName != "") { FileName = openFileDialog.FileName.Trim(); } myth.Abort(); } 

Как остановить stream и обновить текст на экране. Поток только, кажется, способен разговаривать с переменными, а не с интерфейсами пользовательского интерфейса.

Чтобы исправить это, отметьте свой метод Main() classа Program с атрибутом [STAThread] .

Последующее чтение: CA2232 : отметьте точки входа Windows Forms в STAThread .

В этом случае, конечно, метод Main() – это ваша точка входа, независимо от того, что делает.

В этой ошибке. Построение решения не вызывает ошибку, но debug повышает эту ошибку. Я пытаюсь создать новое решение и добавить захватывающий элемент в новое решение. Ошибка исправлена!