1. 程式人生 > >C#自定義類中操作主窗體控制元件,通過委託實現

C#自定義類中操作主窗體控制元件,通過委託實現

主窗體中包含一個標籤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()