c# winform 用属性方法实现子窗体修改父窗体控件的值
目标:实现子窗口Form2的lable输入一个字符串,在父窗口Form1的lable中显示出来。
程序的关键是把父窗口类通过构造函数传到子窗口中。
思路:C#中禁止跨线程直接访问控件,所以子窗口线程中不能直接更新父窗体控件,本文使用调用父窗口属性更新父窗口控件。
主窗口Form1 :lable名:labelFather…
子窗口:Form2 lable名:labelChild

//===================程序=
From1.cs
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string str = "";
public string strLabel//form1的属性
{
get
{
return str;
}
set
{
str = value;
this.labelFather.Text = str;
}
}
private void btnFather_Click(object sender, EventArgs e)
{
Form2 Frm2 = new Form2(this);
Frm2.Show();//显示窗口2
}
}
}
Form2.cs
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form2 : Form
{
Form1 frm1 = new Form1();
public Form2(Form1 newfrm1)//构造函数参数为Form1类,关键1!
{
this.frm1 = newfrm1;//通过构造函数把Form1传过来,关键2!
InitializeComponent();
}
private void btnChild_Click(object sender, EventArgs e)
{
this.frm1.strLabel = textBoxfChild.Text;
}
}
}
本文介绍如何在C# Winform应用程序中,从子窗体Form2更新父窗体Form1的控件值。通过将父窗体作为参数传递给子窗体的构造函数,并利用属性方法安全地在子线程中更新父窗体的控件,避免了跨线程访问控件的问题。

389

被折叠的 条评论
为什么被折叠?



