C# Winform自定义控件更改属性时如何通知父级窗口
如题C#Winform自定义控件更改属性或者产生事件时如何通知父级窗口谢谢大家的发言dkxpsg最先拿出方法.但dkxpsg的思路并不适合我.顾名"自定义控件"就是要大量...
如题
C# Winform自定义控件更改属性或者产生事件时如何通知父级窗口
谢谢大家的发言
dkxpsg 最先拿出方法.
但dkxpsg 的思路并不适合我.
顾名 "自定义控件" 就是要大量用在父级窗口中.指定父级窗口肯定不行.
我说说我的思路:
在所有的父级窗口做一个隐藏控件并制定更改属性时的事件方法.在自定义控件中查找父级窗口的那个控件.然后改变隐藏控件的属性,自然就达到了我想要通知父级窗口的目的.方法虽然笨,但我希望对大家有一定帮助.最后谢谢大家咯!^^ 展开
C# Winform自定义控件更改属性或者产生事件时如何通知父级窗口
谢谢大家的发言
dkxpsg 最先拿出方法.
但dkxpsg 的思路并不适合我.
顾名 "自定义控件" 就是要大量用在父级窗口中.指定父级窗口肯定不行.
我说说我的思路:
在所有的父级窗口做一个隐藏控件并制定更改属性时的事件方法.在自定义控件中查找父级窗口的那个控件.然后改变隐藏控件的属性,自然就达到了我想要通知父级窗口的目的.方法虽然笨,但我希望对大家有一定帮助.最后谢谢大家咯!^^ 展开
4个回答
展开全部
在自定义控件的产生事件时可以调用一个父容器里的方法,如下
//窗体(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);
}
//窗体(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);
}
展开全部
我给做了个事件的。
在父窗体中添加个方法
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("通知父窗体");
}
在父窗体中添加个方法
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);
} /nnn
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);
} /nnn
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接在更改属性事件里写代码通知父窗体。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询