public delegate void PatientChangedDelegate();
public partial class FrmPatientList : UserControl
{
public static PatientChangedDelegate PatientChanged;
/// <summary>
/// 点击触发
/// </summary>
private void gridControl1_MouseClick(object sender, MouseEventArgs e)
{
if (PatientChanged != null)
PatientChanged();//调用事件
}
/// <summary>
/// 判断是否添加相同名称的委托方法
/// </summary>
/// <param name="strMethodName">委托方法名称</param>
/// <returns>true已有;false 无;</returns>
public static bool JudgeIsAddPatChanged(string strMethodName)
{
if (PatientChanged == null)
return false;
Delegate[] delegates = PatientChanged.GetInvocationList();
foreach (var item in delegates)
{
if (item.Method.Name == strMethodName)
{
return true;
}
}
return false;
}
}
public partial class FrmWestPrescription : UserControl
{
public FrmWestPrescription()
{
InitializeComponent();
this.Disposed += FrmWestPrescription_Disposed;
//防止多次添加
if (!FrmPatientList.JudgeIsAddPatChanged("PatientChanged_West"))
FrmPatientList.PatientChanged += PatientChanged_West;
}
/// <summary>
/// 关闭窗口,资源释放时触发
/// </summary>
private void FrmWestPrescription_Disposed(object sender, EventArgs e)
{
FrmPatientList.PatientChanged -= PatientChanged_West;
}
/// <summary>
/// 切换选中项事件
/// 重新加载页面数据、显示隐藏内容设置
/// </summary>
private void PatientChanged_West()
{
RefreshPrescription();//刷新数据
}
}
/// <summary>
/// 关闭对应选项卡
/// </summary>
private void xtraTabControl1_CloseButtonClick(object sender, EventArgs e)
{
XtraTabPage page = (XtraTabPage)((DevExpress.XtraTab.ViewInfo.PageEventArgs)e).Page;
page.Dispose();
}