本周做了一個線程中打開多個窗體的東西,父窗體打開子窗體,父窗體獲取子窗體的控件值,此處我在打開窗體時,分別在不同的線程中打開的,不做多考慮,上手就做,到后來程序崩掉了,原因是什么了,找不到對應的控件,這是為什么了,因為創建子窗體的過程和創建父窗體的過程並不在同一線程中,程序無法獲知你要找的控件 ...
由於Windows 窗體控件本質上不是線程安全的。因此如果有兩個或多個線程適度操作某一控件的狀態 set value ,則可能會迫使該控件進入一種不一致的狀態。還可能出現其他與線程相關的bug,包括爭用和死鎖的情況。於是在調試器中運行應用程序時,如果 創建某控件的線程之外的其他線程試圖調用該控件,則調試器會引發一個InvalidOperationException 本文用一個很簡單的示例來講解這 ...
2012-09-08 21:12 0 3018 推薦指數:
本周做了一個線程中打開多個窗體的東西,父窗體打開子窗體,父窗體獲取子窗體的控件值,此處我在打開窗體時,分別在不同的線程中打開的,不做多考慮,上手就做,到后來程序崩掉了,原因是什么了,找不到對應的控件,這是為什么了,因為創建子窗體的過程和創建父窗體的過程並不在同一線程中,程序無法獲知你要找的控件 ...
我們在做winform應用的時候,大部分情況下都會碰到使用多線程控制界面上控件信息的問題。然而我們並不能用傳統方法來做這個問題,下面我將詳細的介紹。首先來看傳統方法: 運行這段代碼,我們會看到系統拋出一個異常: 這是因為.net ...
c#中如何跨線程調用windows窗體控件? 我們在做winform應用的時候,大部分情況下都會碰到使用多線程控制界面上控件信息的問題。然而我們並不能用傳統方法來做這個問題,下面我將詳細的介紹。首先來看傳統方法: 運行這段代碼,我們會看到系統拋出一個異常: 這是 ...
c#中如何跨線程調用windows窗體控件? 我們在做winform應用的時候,大部分情況下都會碰到使用多線程控制界面上控件信息的問題。然而我們並不能用傳統方法來做這個問題,下面我將詳細的介紹。首先來看傳統方法: public ...
2)窗體A和窗體B之間的調用 ,比較簡單例如:Form1和Form2分別為兩個winform窗體,若想在窗體1中調用窗體2的控件,直接這樣就行,如下: Form2.Button;(當然這個button一定是窗體2中所擁有的,設置為public就行) 2)一個類中調用窗體中的控件,這種比較復雜 ...
1.創建窗體對象 屬性要設置為public。 2.不創建窗體對象 調用: ...
場景 在同一個Winform窗體中,點擊一個Button按鈕時, 獲取同窗體的其他控件的屬性。 首先需要對要獲取的控件賦予Name屬性,然后就可以通過Name進行獲取。 實現 在Button的點擊事件中: ...
第一步:如何在線程中打開窗體 SendEmailProgress progress=new SendEmailProgress(); //添加窗體關閉事件 progress.Closing += (s, ev ...