c# 在自定义类中控制form窗体中的控件 赋值或修改属性
2024-10-20 01:23:56
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(); }
最新文章
- 利用ipython实现多线程
- 数据库递归查询-CTE
- Android Java执行Shell命令
- Python模块(scapy)
- Codeforce Round #226 Div2
- Spring入门(5)-自动装配Bean属性
- iOS 深复制&;浅复制
- js验证手机号码 ,昵称,密码
- Vnstat: 简单实用的网络流量统计工具
- android 中文 api (72) —— BluetoothSocket[蓝牙]
- shell重定向(大于号,小于号,左右,2>;&;1,&;)
- Combination Sum Two
- 在linux(centos)系统安装redis教程
- excel打开txt格式文件
- C++标准模板类库(STL)之queue初步
- Helm介绍
- 神州数码OSPF基于区域认证(简单、MD5认证)
- LeetCode--005--最长回文子串(java)
- 谈谈AsmJit
- js简单Base64编码解码