c# 子类改变父类信息的问题,两个窗体类传值的问题

本文介绍如何在MDI窗体中固定子窗体,包括设置IsMdiContainer属性,正确使用Show方法而非ShowDialog,以及通过构造函数传递父窗体引用以更新父窗体数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

固定一个窗体在另一个窗体中首先需要设置父窗体IsMdiContainer属性为True,然后在Load事件中加入以下语句:

		NewContact newConFrm = new NewContact(this);
		newConFrm.NewGroup = CreateGroup;
                newConFrm.MdiParent = this;
                newConFrm.Show();

注意不能用ShowDialog,因为它不是父类。
这样的话如果在第三行下加代码则会略过:

		NewContact newConFrm = new NewContact(this);
		newConFrm.NewGroup = CreateGroup;
                newConFrm.MdiParent = this;
                newConFrm.Show();
                Nam=newConFrm.Nam;

第四行这句话就不会起作用,所以需要在newConFrm里面点击按钮的时候改变父窗体的信息:

        private Form1 form;
        public NewContact()
        {
            InitializeComponent();
        }
        public NewContact(Form1 f)
        {
            form = f;
            InitializeComponent();
        }

首先private Form1 form;是存了一个父类的实例,之后的第二个构造函数就可以使用form来改变父类中的变量了。

			form.all += 1;
            form.Nam[form.all] = txtName.Text;

不过注意在改变的时候需要在前面加上一个form.
从一个窗体传和接收值只需要加上

 public string[] Nam { get; set; }

其它的类型也可以用,

public ComboBox NewGroup { get; set; }

不过combox赋值需要一条一条赋

foreach (string s in NewGroup.Items)
                cbName.Items.Add(s);

退出子窗体的方法:

this.Close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值