c# 在自定义类中控制form窗体中的控件 赋值或修改属性

c# 在自定义类中控制form窗体中的控件 赋值或修改属性

首先在 自定义类 的外面  声明一个 委托模块 

  //声明一个委托模块 用来改变form1 窗体中的控件值
    public delegate void setStatusDelegate(string requestInfo);//参数的类型可以根据自己的需求变更 int string 或其他
  

然后在类里面,新建一个委托模块的实例

 //定义一个委托的实例方法 
        public static setStatusDelegate setStatusDelegate;

 

然后在其他函数中调用它,并把需要传送的参数值 赋值给委托模块的参数

 //调用委托 把requestInfo.body 放进委托里
                if (UnknowRequest.setStatusDelegate != null)
                {
                    UnknowRequest.setStatusDelegate(requestInfo.Key);//把requestInfo.Key传给了委托模块的参数
                    UnknowRequest.setStatusDelegate(requestInfo.Body);//把requestInfo.Body传给了委托模块的参数
                    rstr += "key:"+ requestInfo.Key + ";body:"+ requestInfo.Body + "";
                }

 

 我们还要在窗体函数中做相应的赋值处理

新建一个函数用来调用新建类中的委托,并接收委托的参数值,把值赋给控件,本例代码中把值add到了listview中去

        //创建一个函数,用来调用委托 接收到的无法解析的数据
        private void getUnknowRequest()
        {
            //调用委托 并把委托中的值添加到listview
            //using SupperSocketDemo.Command; 别忘记引用
           UnknowRequest.setStatusDelegate = new setStatusDelegate((i) =>
            {
                this.Invoke(new setStatusDelegate((requestInfo) =>
                {
                    this.lvlist.Items.Add("非命令数据  " + requestInfo.ToString() + "  "+DateTime.Now.ToString()+"");
                }), i);
            });

        }

最后在窗体的load事件中调用一下这个函数,就可以了。

private void Form1_Load(object sender, EventArgs e)
        {
          //调用委托 获取非命令数据的解析
             getUnknowRequest();

        }

 

c# 在自定义类中控制form窗体中的控件 赋值或修改属性

上一篇:APICloud Studio3.0最新功能及使用流程介绍


下一篇:[SQL]SQL语言入门级教材_SQL功能与特性(一)