如何在C#中从另一个窗体清除文本框?

如何在C#中从另一个窗体清除文本框?,c#,winforms,C#,Winforms,当我在另一个窗体上单击按钮时,我正试图在Visual C中从另一个窗体中清除文本框,但没有任何效果。我在VB.Net中轻松地完成了这项工作,但在Visual C中,我做不到。 请告诉我一个在(WinForm)中执行此操作的简单方法。我正在使用.NETFramework4.8 这是我在VB.Net中使用的代码。告诉我如何用C#做这件事 注意:form1是我的textBox1存在的表单,form2是我的按钮存在的表单,我希望当我单击该按钮时,textBox1文本变为空 form1.textBox1.

当我在另一个窗体上单击按钮时,我正试图在Visual C中从另一个窗体中清除文本框,但没有任何效果。我在VB.Net中轻松地完成了这项工作,但在Visual C中,我做不到。 请告诉我一个在(WinForm)中执行此操作的简单方法。我正在使用.NETFramework4.8

这是我在VB.Net中使用的代码。告诉我如何用C#做这件事

注意:form1是我的textBox1存在的表单,form2是我的按钮存在的表单,我希望当我单击该按钮时,textBox1文本变为空

form1.textBox1.Text = ""

通常,我在嵌入式系统上使用C语言。我是OOP和C的新手。我发现Idk有两种解决方案,它们是否正确,但我希望它能解决您的问题

解决方案1:

转到WinForm并添加下面的代码以生成引用,以便稍后调用表单

public partial class Form1:Form 
{
    public static Form1 form;
    public Form1()
    {
      form = this;
      InitializeComponent();
    }
}
现在,转到你的另一张表格,试试这个

Form1.form.textBox1.Clear();
解决方案2:

这个解决方案可能不适合面向对象编程,但正如一位专家所说。我想,就像嵌入式程序员一样,我尝试使用callbyref,结果成功了。如果这种方法不合适,请告诉我原因

我在Form1中添加了带有单击操作的新按钮

private void ButtonClear_Click(object sender, EventArgs e)
{
     class.TextClear(ref textBox1);
} 
我创建了一个名为class的新类,并在下面添加了方法

public static void TextSil(ref TextBox textBox1)
{
    textBox1.Clear();
}

它是web表单还是win表单还是什么?
form1.textBox1.Text=“”您缺少问题的详细信息。没有
form1
的声明。如果我声明一个表单实例并将其命名为
form1
,并且文本框
textBox1
具有正确的可访问性,我们可以执行
form1.texBox1.text=”“没有问题。您确实需要提供更多信息。发布对象
form1
的创建,发布整个按钮单击处理程序方法,并发布将文本框声明为
public
textBox1
属性的屏幕截图!在VB.Net中,您可能正在使用默认表单实例。你没有C字母的。您需要当前
form1
实例的引用。当然,不能使用
var form1=new form1()创建另一个:这将创建一个不同于现有实例的新实例。非常感谢@TusharChaurasia-第一个选项是个坏主意-永远不要像这样使用
静态
,因为它最终会让您陷入困境,并使您的代码变得脆弱。第二种选择是完全错误的。@TusharChaurasia-你应该回答你问题下的评论。我们正试图帮助诊断您所做的工作,以便为您提供一个良好、健壮的解决方案。事实上,我编写的解决方案不仅有助于您,而且还了解了它的好坏。所以,谢谢你的评论。但是为什么这样使用静态是个坏主意呢?第二个不是完全错误,我试过了,它完全有效当你处理对象的实例时,静态方法可能会产生不想要的结果。从那里删除
ref
ref TextBox textBox1
)。您需要使用实例。静态方法是可能的,但您需要测试如果同一对象有多个实例,会发生什么情况。如果需要与对象实例交互,则必须传递/注入当前实例,并可能使用实例提供的公共方法、属性和事件来修改其内部。