c# winform 用属性方法实现子窗体修改父窗体控件的值

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;
        }
    }
}


评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值