c# 子類改變父類資訊的問題,兩個窗體類傳值的問題
阿新 • • 發佈:2018-11-27
固定一個窗體在另一個窗體中首先需要設定父窗體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();