c# 子窗口改变父窗口控件属性

主要改变父窗体label... 主要改变父窗体label 展开
 我来答
爱的献言策
推荐于2017-05-27 · TA获得超过405个赞
知道小有建树答主
回答量:201
采纳率:58%
帮助的人:62.4万
展开全部

子窗体中实例化一个父窗体的累,比如你的父窗体Name叫做Form1

1、你可以在子窗体中调用的时候实例化父窗体:

Form1 for1=new Form1();

 2、然后你让你的父窗体中的Label的Modifiers属性设置为Public,如下图中位置。

此时你就可以在子窗体中调用父窗体的Label控件了。

3、比如你的父窗体中的Label名字叫做Label1,你想让父窗体中Label1的Text等于子窗体的Label1的Text,你在子窗体调用的时候就可以这样写:for1.Label1.Text=this.Lable1.Text;
不详细的地方可以加追问,很乐意和你交流。
望采纳,谢谢。

追问
我按照你这样做了 可是父窗体还是没有显示 求解
追答
实在不好意思,是我太自以为是了,我经常用这种方法修改子窗体的值。
你看我们用另一种方法行不行,通过事件让Form1(父窗体)监视子窗体中的某一数据值的变化来修改Form1(父窗体)中的值,下面是具体操作。

在窗体Form2中定义公有属性Form2Value,获取和设置textBox1的文本值
并且还定义一个accept事件
public string Form2Value
{
get
{
return this.textBox1.Text;
}
set
{
this.textBox1.Text = value;
}
}
public event EventHandler accept;

private void button1_Click ( object sender , EventArgs e )
{
if ( accept != null )
{
accept ( this , EventArgs.Empty ); //当窗体触发事件,传递自身引用
}
this.Disepose();
}
在窗体Form1中
Form2 f2 = new Form2 ( );
f2.accept += new EventHandler ( f2_accept );

void f2_accept ( object sender , EventArgs e )
{
//事件的接收者通过一个简单的类型转换得到Form2的引用
Form2 f2 = (Form2) sender;
//接收到Form2的textBox1.Text
this.Label1.Text = f2.Form2Value;
}

如果有其他需要我们可以想其他的方法。
筑梦一江秋
2013-12-16 · 超过12用户采纳过TA的回答
知道答主
回答量:42
采纳率:100%
帮助的人:28.3万
展开全部
获得主窗体的实例名,然后调用即可。子窗体肯定是父窗体创建的,那么子窗体肯定能获得父窗体的实例名。比如:Form form1 = new Form();Form form2= new Form();form2.owner=GetWindowFromHwnd(form1 .Handle);form1.lable.Text = '';
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式