ParentForm只包含一个按钮" Open Second Form"它调用的onclick事件
private void Parent_Click(object sender, EventArgs e)
{
ChildForm _chld = new ChildForm();
_chld.ShowDialog();
}
private void ChildForm_Load(object sender, EventArgs e)
{
textBox1.Text = "This is Child Form";
}
private void Ok_Click(object sender, EventArgs e)
{
this.Hide();
}
子窗体包含文本框,Ok按钮和ChildForm_Load,OK按钮的Child_Click事件。
点击"打开第二张表格"按钮它打开包含内容的儿童表格"这是儿童表格"在文本框中。
我的情况就是这样,
当我第一次点击OpenSecondForm时,它会打开包含内容&#34的ChildForm;这是Child形式"在文本框中。我将文本框更改为"这是父表单"然后确定。
但是,当我再次点击"打开第二表格"按钮文本框中的文本显示旧文本"这是子表格"但没有改变文字"这是父表格"。该值不会保留在文本框中。
我认为每个showdialog()都会触发Load事件。有没有办法第二次阻止加载事件。
答案 0 :(得分:1)
您每次都在创建新表单,因此会显示默认值。我猜你只想要一个ChildForm显示,所以将变量移动到父窗体的范围:
ChildForm _chld = new ChildForm();
private void Parent_Click(object sender, EventArgs e)
{
_chld.ShowDialog();
}
当父母关闭时,请务必处置该ChildForm:
protected override void OnFormClosing(FormClosingEventArgs e) {
_chld.Dispose();
}
Load事件仍然会触发,所以只需删除你的行或将其移动到构造函数:
public ChildForm() {
this.InitializeComponent();
this.textBox1.Text = "This is Child Form";
}