C# 尝试显示窗体时出错
我从VB切换到c#.NET,我正在尝试做最简单的事情——单击按钮时显示表单。 但是,在项目中的任何地方,我都尝试使用类似的代码:C# 尝试显示窗体时出错,c#,C#,我从VB切换到c#.NET,我正在尝试做最简单的事情——单击按钮时显示表单。 但是,在项目中的任何地方,我都尝试使用类似的代码: private void radioButton15_CheckedChanged(object sender, EventArgs e) { Form2.show(); } 它显示错误: 'Project1.Form2' does not contain a definition for 'show' showdialog也会
private void radioButton15_CheckedChanged(object sender, EventArgs e)
{
Form2.show();
}
它显示错误:
'Project1.Form2' does not contain a definition for 'show'
showdialog也会发生同样的情况。试试这个
Form2 frm2 = new Form2();
frm2.Show();
C#区分大小写,因此没有show
这样的东西,但是有show()代码>。因此,如果Form2
是一个实例,那么这将起作用:
Form2.Show();
如果不是实例,则需要创建实例并对实例调用Show
方法,因为它不是静态方法。像这样:
var form = new Form2();
form.Show();
这里有两个错误。
显示表单是使用.Show()
,而不是.Show()
。
Windows窗体也是对象,您不能将.Show()
用作静态方法。您试图在Form2类上调用Show方法。首先需要创建Form2类的实例,然后对该实例调用Show方法。VB和C#之间的一大区别是C#区分大小写。在C#中,show()
与show()
感谢您这段代码可以工作,但它也允许多个实例。如何显示窗体的唯一实例?@StanislavVladev“显示窗体的唯一实例”是什么意思?我的意思是不允许程序显示多个窗体实例。@StanislavVladev这将是一个与您提出的问题不同的问题。但是,不管是vb.net还是C#,您都需要为此编写代码。一种方法是编写代码,这样就不会在同一时间多次显示同一表单。例如,不要放置var form=new Form2()代码>在按钮单击处理程序中。将其放入主窗体的加载处理程序中,并使其成为类字段。然后,你可以在任何你想显示表单的地方使用相同的实例(字段)。@Stanislav Vladev如果你说“禁止程序显示多个表单实例”,你的意思是你只想打开一个表单,并阻止用户在表单2打开后单击按钮,您可以对接受的答案执行相同的操作,但使用“ShowDialog()”而不是“Show()”