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

固定一个窗体在另一个窗体中首先需要设置父窗体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();

猜你喜欢

转载自blog.csdn.net/tianyizhicheng/article/details/84256069
今日推荐