如何在C#中从另一个窗体清除文本框?
当我在另一个窗体上单击按钮时,我正试图在Visual C中从另一个窗体中清除文本框,但没有任何效果。我在VB.Net中轻松地完成了这项工作,但在Visual C中,我做不到。 请告诉我一个在(WinForm)中执行此操作的简单方法。我正在使用.NETFramework4.8 这是我在VB.Net中使用的代码。告诉我如何用C#做这件事 注意:form1是我的textBox1存在的表单,form2是我的按钮存在的表单,我希望当我单击该按钮时,textBox1文本变为空如何在C#中从另一个窗体清除文本框?,c#,winforms,C#,Winforms,当我在另一个窗体上单击按钮时,我正试图在Visual C中从另一个窗体中清除文本框,但没有任何效果。我在VB.Net中轻松地完成了这项工作,但在Visual C中,我做不到。 请告诉我一个在(WinForm)中执行此操作的简单方法。我正在使用.NETFramework4.8 这是我在VB.Net中使用的代码。告诉我如何用C#做这件事 注意:form1是我的textBox1存在的表单,form2是我的按钮存在的表单,我希望当我单击该按钮时,textBox1文本变为空 form1.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
)。您需要使用实例。静态方法是可能的,但您需要测试如果同一对象有多个实例,会发生什么情况。如果需要与对象实例交互,则必须传递/注入当前实例,并可能使用实例提供的公共方法、属性和事件来修改其内部。