子窗體調用主窗體事件:
主窗體:
UserControl1 uc = new UserControl1();//用戶控件窗體
uc.Up += new UpHandler(Up);//【2】委托聲明(給子窗體操作調用的)
temptb.Content = uc;
子窗體:
交互邏輯層外定義
//【1】定義委托
public delegate void UpHandler();//,可加參數
交互邏輯層內定義
//【3】聲明委托
public event UpHandler Up;//【2】從主窗體轉過來
// 【4】調用事件函數 (使用按鈕事件)
private void button1_Click(object sender, EventArgs e)
{
// 觸發事件, 傳遞自定義參數
////方法一
//if (Up != null)
//{
// Up();
//}
//方法二
Up?.Invoke();
}
主窗體調用子窗體事件:
主窗體:
交互邏輯層外定義
//【1】定義委托
public delegate void AddHandler();//新建
交互邏輯層內定義
//【3】創建委托
public event AddHandler Add;//新建
//【4】使用委托對象
private void toolStripButton1_Click(object sender, EventArgs e)
{
//Add
//FrmChangeCommodity
if (this.Add != null)
{
Add();//添加按鈕
return;
}
}
#endregion
子窗體:
//【2-1】定義主窗體對象
MainWindow frmMain1;
public FrmCommodity()
{
InitializeComponent();
//初始化
//******************************************************************************
this.frmMain1.Add += new AddHandler(Add);
}
//【2】委托聲明(給主窗體操作的)
/// <summary>
/// 調用添加按鈕
/// </summary>
private void Add()
{
btnAdd_Click();
}