Mdi子窗口间消息通信

using System;

namespace Vavic
{
///

 1<summary>   
 2/// 当信息更改是通知其他的窗口重新加载数据   
 3/// 使用方法为:1)通知信息更改   
 4/// Notify.Instance().SendMessage(100, "Form1 Activate test notify event");   
 5/// 其中第一个参数为信息号,第二个参数为信息描述   
 6/// 2)收取信息   
 7/// 使用方法,在每个FORMLOAD事件中加入如下语句   
 8/// Notify.Instance().OnNotifyEvent += new Notify.NotifyEvent(OnNotifyEvent);   
 9/// 同时编写如下的方法用于重新加载数据   
10///protected void OnNotifyEvent(object sender, Notify.NotifyEventArgs e)   
11///{   
12/// if (e.Code == Notify.CompanyInfo)   
13/// System.Diagnostics.Debug.WriteLine(string.Format(" Form1 Code={0}, Message = {1}", e.Code,e.Message));   
14///}   
15/// </summary>

public class Notify
{
protected static Notify m_notify = null;
public delegate void NotifyEvent(object sender, NotifyEventArgs e);
public event NotifyEvent OnNotifyEvent;
protected Notify()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public static Notify Instance()
{
if (m_notify == null)
m_notify = new Notify();
return m_notify;
}

public void SendMessage(int code, string message)
{
NotifyEventArgs e = new NotifyEventArgs(code, message);
if ( OnNotifyEvent != null)
OnNotifyEvent(this, e);
}

public class NotifyEventArgs : System.EventArgs
{
public NotifyEventArgs(int code, string message)
{
m_nCode = code;
m_strMessage = message;
}

public NotifyEventArgs()
{
}

protected int m_nCode;
public int Code
{
get { return m_nCode;}
set { m_nCode = value;}
}

protected string m_strMessage = string.Empty;
public string Message
{
get { return m_strMessage;}
set
{
m_strMessage = value;
if (m_strMessage == null)
m_strMessage = string.Empty;
}
}
}

#region Common Infomation
public const int CompanyInfo = 1;
public const int ProjectInfo = 2;
public const int TaskInfo = 3;
public const int Opportunity = 4;
public const int Contactor = 5;
public const int EmployeeInfo = 6;
public const int DepartmentInfo = 7;
public const int AdvCityInfo = 8;
#endregion
}
}

Published At
Categories with Web编程
Tagged with
comments powered by Disqus