zoukankan      html  css  js  c++  java
  • 窗口传值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);
  • 相关阅读:
    12、SpringBoot-CRUD增加数据
    12、SpringBoot-CRUD增加数据
    Cache操作类
    pythonhttp
    python学习
    自动化测试LoadRunner
    pythonweb自动化测试
    python学习工具篇
    python学习
    自动化测试之python安装
  • 原文地址:https://www.cnblogs.com/stoneG/p/8979339.html
Copyright © 2011-2022 走看看