在c#中關於線程調用控件
由於c#不允許非創造控件線程調用控件,所以遇到過很多問題。
提示:
線程間操作無效: 從不是創建控件“showtable_btn”的線程訪問它。
有些小鬱悶
因為是剛剛使用thread
原始代碼大概如下
private void showtable_btn_Click(object sender, EventArgs e)
{
thread t = new thead(s)
t.start()
}
private void s()
{
textbox1.text = "www";
}
如果報出上述的錯誤
於是我做了的修改
1.增加一個
delegate void SetVisibleDelegate();
2.新加一個函數
privare void sinvoke()
{
this.Invoke(new SetVisibleDelegate(s))
}
3.之後重新調用
private void showtable_btn_Click(object sender, EventArgs e)
{
thread t = new thead(sinvoke)
t.start()
}
這樣的話
一切就OK了
最後更新:2017-04-02 00:06:46