窗口传值Delegate
Posted stoneg
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了窗口传值Delegate相关的知识,希望对你有一定的参考价值。
- 主窗口实现Handler
private void DisplayMessageHandler(string strmes, Color color) { label1.Text = strmes; label1.BackColor=color; label1.Refresh(); Application.DoEvents(); }
private void DisplayMessageDelegate(string msg, Color color) { if (this.InvokeRequired) //are we running on a secondary thread { //Make arguments for delegate Object[] args = new Object[] { msg, color }; //Make the delegate DisplayMessage dm = new DisplayMessage(DisplayMessageHandler); this.Invoke(dm,args); } else { DisplayMessageHandler(msg,color); } }
private void OnUpdateWindow(string msg, Color color) { DisplayMessageDelegate(msg, color); }
- 在主窗口代码中声明委托
private delegate void DisplayMessage(string msg, Color color);
- 在副窗口中声明委托
public delegate void UpdateWindowDelegate(string msg, Color color ); public static UpdateWindowDelegate UpdateWindow;
- 在副窗口中调用委托
private void UpdateMsg(string msg, Color color) { UpdateWindowDelegate uw = UpdateWindow; if (uw != null) UpdateWindow(msg, color); }
- 在主窗口中声明副窗口中的委托
Form2.UpdateWindow += new Form2.UpdateWindowDelegate(OnUpdateWindow);
以上是关于窗口传值Delegate的主要内容,如果未能解决你的问题,请参考以下文章