C#自定義類中操作主窗體控制元件,通過委託實現
阿新 • • 發佈:2018-12-26
主窗體中包含一個標籤label1和一個按鈕button1
程式碼如下:
public void ChangeLabel(string text) { label1.Text = text; } private void button1_Click(object sender, EventArgs e) { Thread th = new Thread(() => { MyClass my = new MyClass(); my.ChangeLabel += ChangeLabel; my.ChangeText("hello"); }); th.IsBackground = true; th.Start(); }
自定義MyClass包含一個public方法ChangeText,用於改變標籤文字。
程式碼如下:
public delegate void ChangeLabelEventHandle(string text);
public ChangeLabelEventHandle ChangeLabel;
public void ChangeText(string text)
{
ChangeLabel(text);
}
因為是跨執行緒呼叫,最好要加上BeginInvoke()