父窗体向子窗体传值:实例化子窗体时传参到子窗体构造函数,子窗体可在构造函数中取到param;
子窗体向父窗体传值: 子窗体定义委托-> 定义事件->子窗体触发事件并传入参数->父窗体注册子窗体事件处理函数->父窗体事件处理函数中接收到子窗体参数;
父窗体:
private void button1_Click(object sender, EventArgs e)
{
TipBoxForm tips = new TipBoxForm("mmp 日报不好写","wewqewq", "info");
//注册事件处理函数
tips.Return+= frm_TransfEvent;
tips.TransfEvent += frm_TransfEvent2;
//子窗体相对父窗体居中
tips.StartPosition = FormStartPosition.CenterParent;
var result = tips.ShowDialog();
}
子窗体:
//构造函数接收父窗体参数
public TipBoxForm(string title, string value, string type)
{
InitializeComponent();
this.Text = title;
this.m_TipInfo = value;
this.m_Type = type;
}
//子窗体定义委托 定义事件
public delegate void TransfDelegate(string value);
public event TransfDelegate TransfEvent;
public event TransfDelegate Return;
//子窗体 触发事件
private void okButton_Click(object sender, EventArgs e)
{
TransfEvent(message.Text);
Return(message.Text);
this.DialogResult = DialogResult.OK;
}