C#使用自定义事件实现子类中需要显示的内容传递到主界面中
程序员文章站
2022-06-10 21:09:55
...
摘录的网址:https://www.cnblogs.com/xiii/p/7006901.html
自定义一个类的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace WindowsFormsApplication2
{
class Class1
{
public event EventHandler<MyEventArg> OnInput;
public void taskStart()
{
Task task = new Task(dowork);
task.Start();
}
public void dowork()
{
for (int i = 0; ; i++)
{
if (i%2==1)
{
OnInput(this, new MyEventArg(i.ToString ()));
}
Thread.Sleep(500);
}
}
}
public class MyEventArg : EventArgs
{
string _msg;
public MyEventArg (string msg)
{
this._msg = msg;
}
public string Msg
{
get { return String.IsNullOrEmpty(_msg) ? "Not String!" : _msg; }
}
}
}
主界面的代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
private Class1 cl;
public Form1()
{
InitializeComponent();
cl = new Class1();
cl.OnInput += cl_OnInput;//显示事件
}
private void button1_Click(object sender, EventArgs e)
{
cl.taskStart();
}
void cl_OnInput(object sender, MyEventArg e)
{
this.Invoke(new EventHandler(delegate { textBox1.Text = e.Msg; }));
}
}
}
上一篇: 材质
下一篇: OSG中LabelControl中文显示