C# 尝试显示窗体时出错

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也会

我从VB切换到c#.NET,我正在尝试做最简单的事情——单击按钮时显示表单。 但是,在项目中的任何地方,我都尝试使用类似的代码:

  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()”