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;    

      }

    }

  • 相关阅读:
    java基础16 捕获、抛出以、自定义异常和 finally 块(以及关键字:throw 、throws)
    java基础15 内部类(成员内部类、局部内部类)和匿名内部类
    java基础14 多态(及关键字:instanceof)
    java基础13 接口(及关键字:interface、implements)
    Java 线程控制
    Java 多线程创建和线程状态
    Java New IO
    Java IO流
    Java 集合和泛型
    Java 动态代理
  • 原文地址:https://www.cnblogs.com/xihong2014/p/4420183.html
Copyright © 2011-2022 走看看