2015-06-18 30 views
0

我將開始說我不知道​​c#非常好,這很可能是一個非常簡單的解決方案。無法更改來自NetworkAddressChangedEventHandler的標籤文本c#

我想要實現的是當網絡狀態改變我想改變標籤

我發現,當我禁用網卡,當網絡發生變化

using System.Net.NetworkInformation; 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     NetworkChange.NetworkAddressChanged += new          
     NetworkAddressChangedEventHandler(AddressChangedCallback);      
    } 

    public void AddressChangedCallback(object sender, EventArgs e)      
    { 

     NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); 
     foreach (NetworkInterface n in adapters) 
     { 
      label1.Text = "bla bla"; 
     } 
    } 
現在

如何通過靶向和事件卡我可以看到AddressChangedCallback被調用,但隨後VS正在停止或出現錯誤「跨線程操作無效:控制'label1'從其創建線程以外的線程訪問。」

我需要在我的代碼更改,以便就我發現this.Invoke((MethodInvoker)委託 是受到更多的搜索後,從AddressChangedCallback更改標籤

謝謝:)

+2

可能重複[如何更新在C#中的另一個線程的GUI?](http://stackoverflow.com/questions/661561/how-to-update-the-gui-from -another線程在-c)的 – cubrr

回答

0

做什麼,我需要的

 this.Invoke((MethodInvoker)delegate 
     { 
       //your code here 
     });