C# 由于某些原因,我的文本框在c语言中无法清除#

C# 由于某些原因,我的文本框在c语言中无法清除#,c#,textbox,C#,Textbox,要开始我正在验证用户是否要清除文本框: public void CheckSure() { Form2 f2 = new Form2(); f2.Visible = true; } 然后Form2打开,我在是和否之间进行选择,我选择是: private void YesButton_Click(object sender, EventArgs e) { Form1 f1 = new Form1();

要开始我正在验证用户是否要清除文本框:

    public void CheckSure()
    {
        Form2 f2 = new Form2();
        f2.Visible = true;
    }
然后Form2打开,我在是和否之间进行选择,我选择是:

    private void YesButton_Click(object sender, EventArgs e)
    {
        Form1 f1 = new Form1();
        this.Hide();
        f1.Clear();
    }
    public void Clear()
    {
        TextSpace.Text = string.Empty;
    }
然后调用clear方法,该方法应清除文本框:

    private void YesButton_Click(object sender, EventArgs e)
    {
        Form1 f1 = new Form1();
        this.Hide();
        f1.Clear();
    }
    public void Clear()
    {
        TextSpace.Text = string.Empty;
    }
使用断点,我已经确定它肯定会运行行
TextSpace.Text=string.Empty但是由于某种原因文本框不清晰?

任何帮助都将不胜感激。

您正在创建Form1的新实例。您需要使用当前实例

在实例化Form2时,可以利用
Form.Owner
属性:

var form2 = new Form2();
form2.Owner = this;

然后在Form2中,要访问Form1,您可以调用
this.Owner.TextSpace.Clear()

您的
是按钮单击
处理程序正在创建
Form1
的新实例,当这一切都可能发生时,它需要引用当前的
表单1
。您创建了一个新表单并立即调用
Clear
,这有点危险-您是否应该在
f2
上调用
Clear
?或者它确实是
f1
?您也可以使用MessageBox:if(MessageBox.Show(message,caption,MessageBoxButtons.YesNo)==System.Windows.Forms.DialogResult.Yes)TextSpace.Text=string.Empty;非常感谢,我已经确定了本的一个,但所有这些都很有用,帮助我理解为什么它不起作用。