C# Winform自定义控件更改属性时如何通知父级窗口

来源:百度知道 编辑:UC知道 时间:2024/07/05 03:20:09
如题
C# Winform自定义控件更改属性或者产生事件时如何通知父级窗口
谢谢大家的发言
dkxpsg 最先拿出方法.
但dkxpsg 的思路并不适合我.
顾名 "自定义控件" 就是要大量用在父级窗口中.指定父级窗口肯定不行.
我说说我的思路:
在所有的父级窗口做一个隐藏控件并制定更改属性时的事件方法.在自定义控件中查找父级窗口的那个控件.然后改变隐藏控件的属性,自然就达到了我想要通知父级窗口的目的.方法虽然笨,但我希望对大家有一定帮助.最后谢谢大家咯!^^

我给做了个事件的。
在父窗体中添加个方法
public void show(string Message)
{
MessageBox.Show("子窗体已经发出信息"+Message);
}
//show子窗体事件代码
private void 打开子窗体ToolStripMenuItem_Click(object sender, EventArgs e)
{
Form3 f3 = new Form3();
f3.f2 = this;
f3.Show();
}
//子窗体代码
public Form2 f2 = null;
按钮事件代码
private void button1_Click(object sender, EventArgs e)
{
f2.show("通知父窗体");

}

在自定义控件的产生事件时可以调用一个父容器里的方法,如下
//窗体(Form1)里地方法
public void Response(string msg)
{
MessageBox.Show(msg);
}
//自定义控件里的鼠标双击事件,UserControl1是直接放在窗体里的所以UserControl1的Parent是Form1
private void UserControl1_DoubleClick(object sender, EventArgs e)
{
((Form1)this.Parent).Response(this.Name);
}