我在Form1中有一个TextBox(我们称之为textBox1)。当用户按“新建”清除屏幕时,在接受他们的工作将丢失后(从Form2中),如何清除textBox1?我不能直接从第二种形式访问它,我想不出一个可行的方法来做到这一点。
提前感谢您的帮助!
答案 0 :(得分:1)
在git remote add origin https://github.com/yourUserNamehere/test-repo.git
中添加公示成功标志,然后再进行检查。或者,您可以使用Form2
和ShowDialog
的内置功能。
在OOP和逻辑方面比从DialogResult
更改Form1
的值更合适。
如果更改硬编码表单的值,则无法再次重复使用此表单。
使用这种方法,您可以在任何地方重复使用此表单。 使用简单的自定义变量:
Form2
使用public class Form2 : Form
{
public bool Result { get; set; }
public void ButtonYes_Click(object sender, EventArgs e)
{
Result = true;
this.Close();
}
public void ButtonNo_Click(object sender, EventArgs e)
{
Result = false;
this.Close();
}
}
public class Form1 : Form
{
public void Button1_Click(object sender, EventArgs e)
{
using (Form2 form = new Form2())
{
form.ShowDialog();
if (form.Result) TextBox1.Text = String.Empty;
}
}
}
或DialogResult
:
ShowDialog
最好使用public class Form2 : Form
{
public void ButtonYes_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.Yes;
this.Close();
}
public void ButtonNo_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.No;
this.Close();
}
}
public class Form1 : Form
{
public void Button1_Click(object sender, EventArgs e)
{
using (Form2 form = new Form2())
{
var result = form.ShowDialog();
if (result == DialogResult.Yes) TextBox1.Text = String.Empty;
}
}
}
,因为表格不会在using
之后处理
它使得处置确定性。通过这种方式,您可以确保在停止使用后立即处理它。