子窗体调用主窗体事件:
主窗体:
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();
}