2013-03-11 66 views
0

我有問題,在窗體,它是從主窗體線程的另一個線程上運行的DatagridView。C#DataGridView消失在另一個線程上運行的形式

  1. 我創建了新窗體的實例,例如。 「newForm」
  2. 我對新的線程中運行它:new Thread(() => coldTestVerifyResult.ShowDialog()).Start();
  3. 我通過newFrom.Invoke((MethodInvoker)delegate{ ... })更新一些控制(標籤,文本框) - 這是OK!
  4. 我更新的dataGridView還通過參數調用,但不顯示此的dataGridView(數據,標題,邊框,沒有什麼...)

我會感謝任何幫助。謝謝

+0

_in表單正在另一個線程上運行_ - 爲什麼?只是不要那樣做。它不應該是必要的。 – 2013-03-11 13:17:43

+0

因爲我必須能夠從主窗體更新這個新窗體的控件而不凍結主窗體 – Majak 2013-03-11 13:19:18

回答

1

你不應該在另一個線程中顯示錶單。所有UI工作和所有對cotnrols的訪問應該在UI(主)線程中完成。您觀察到的行爲完全是因爲您在新線程中顯示了該表單。

+0

但是如果我在主線程上顯示它,主窗體會凍結。我的應用程序必須能夠實時更新新窗體的控件,而不是在關閉newForm對話框後 – Majak 2013-03-11 13:22:15

+0

@ user2087665只需使用Show()而不是ShowDialog()。 – 2013-03-11 13:23:20

+0

如果我使用Show,newForm在顯示後立即消失 – Majak 2013-03-11 13:24:28

相關問題