zoukankan      html  css  js  c++  java
  • c# winform委托的使用

    可参考http://bbs.csdn.net/topics/390377875中使用new Action<>的使用方式,替代delegate的申明。

    public delegate void MyInvokeWarn(bool para);  

    public delegate void MyInvoke(Control control,string str);

    //单个参数

     public void enableWarn1(bool para)        

    {            

      if (panelWarn1.InvokeRequired)            

      {                

        MyInvokeWarn _myinvoke = new MyInvokeWarn(enableWarn1);                

        panelWarn1.Invoke(_myinvoke, new object[] { para });            

      }            

      else            

      {                

        panelWarn1.Visible = para;            

      }        

    }

    //两个参数

     public void printMsg(Control control,string msg)        

    {            

        if (control.InvokeRequired)            

        {                

           MyInvoke _myInvoke = new MyInvoke((ct, v) => { ct.Text = v; });                

           control.Invoke(_myInvoke,new object[] {control,msg});            

         }            

        else            

        {                

           control.Text = msg;            

         }        

    }

     

    在Winform开发中,如果在多线程中操作某一个控件的赋值的时候

    //先声明一个委托

    public delegate void SetControlTextDelegate(Control control);

    //设置控件的方法

    public void SetControlText(Control control, string value)

    {    

      if (control.InvokeRequired)    

      {        

      //使用委托赋值        

         control.Invoke(new SetControlTextDelegate((ct, v) => { ct.Text = v; }), new object[] { control, value });     }    

      else    

      {        

         control.Text = value;    

      }

    }

  • 相关阅读:
    常用的Intent.Action(转)
    Android存储--SharedPreferences
    Linux虚拟机网络配置
    SSH的两种登录方式以及配置
    Docker学习のC/S模式
    Docker学习のDocker镜像
    Docker学习のDocker中部署静态页网站
    Docker学习のWindows下如何访问Docker本身的虚拟机
    Docker学习のDocker的简单应用
    Docker学习の更改Docker的目录
  • 原文地址:https://www.cnblogs.com/xihong2014/p/4420183.html
Copyright © 2011-2022 走看看