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();
}