程序下载地址:https://download.csdn.net/download/yue1453544229/11500830
流程消息类,该类使用单例模式,可以在各子类的流程消息传递,如果需要在子类中传递数据,则再写一个其他事件,用于数据传递,或用List,队列等进行传递。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication37
{
class DispMsgHelper
{
//编写一个单例模式
private static DispMsgHelper dispMsgHelper;
private static readonly object locker = new object();
private DispMsgHelper() { }
public static DispMsgHelper GetDispMsgHelper()
{
if (dispMsgHelper ==null)
{
lock (locker )
{
if (dispMsgHelper ==null)
{
dispMsgHelper = new DispMsgHelper();
}
}
}
return dispMsgHelper;
}
public event EventHandler DispMsg;
public void startDispMsg(MsgEventArgs e)
{
if (DispMsg != null)
{
DispMsg(this, e);
}
}
}
class MsgEventArgs : EventArgs
{
public string msgType { get; set; }
public string msg { get; set; }
public MsgEventArgs(string MsgType, string Msg)
{
this.msgType = MsgType;
this.msg = Msg;
}
}
}
用于测试的子类1和子类2,子类中进行事件的触发。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication37
{
class test
{
public test()
{
}
public void sendMsg()
{
DispMsgHelper.GetDispMsgHelper().startDispMsg(new MsgEventArgs("Info", "we"));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace WindowsFormsApplication37
{
class test2
{
public void sendMsg()
{
DispMsgHelper.GetDispMsgHelper().startDispMsg(new MsgEventArgs("Info", "test2"));
}
}
}
在主界面类里进行响应事件,事件的挂载在该类中
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 WindowsFormsApplication37
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
DispMsgHelper .GetDispMsgHelper ().DispMsg+=dispMsg_DispMsg;
test t = new test();
t.sendMsg();
test2 t2 = new test2();
t2.sendMsg();
}
void dispMsg_DispMsg(object sender, EventArgs e)
{
if (e is MsgEventArgs )
{
MsgEventArgs msgEventArgs = e as MsgEventArgs;
MessageBox.Show(msgEventArgs.msgType + " " + msgEventArgs.msg);
}
}
}
}