Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#打开一个新表单_C#_Visual Studio - Fatal编程技术网

C#打开一个新表单

C#打开一个新表单,c#,visual-studio,C#,Visual Studio,我已经浏览了许多相同问题的主题,但这些答案在我的案例中并不适用 我有两张表格:Form2.cs和frmMain.cs。我想在单击按钮时打开Form2,因此我在frmMain中添加了一个按钮的行: private void PLCTagsMenuItem_Click(object sender, EventArgs e) { Form2 form = new Form2(); form.ShowDialog(); } 但“Form2”的错误如下:

我已经浏览了许多相同问题的主题,但这些答案在我的案例中并不适用

我有两张表格:Form2.cs和frmMain.cs。我想在单击按钮时打开Form2,因此我在frmMain中添加了一个按钮的行:

 private void PLCTagsMenuItem_Click(object sender, EventArgs e)
    {
       Form2 form = new Form2();
       form.ShowDialog();

    }
但“Form2”的错误如下:


那么我做错了什么?我使用的是VS 2015 RC

如果form2位于另一个命名空间中,则需要使用完整命名空间或添加:

或:


由于编译器找不到类
Form2
,在代码中引发了错误。我猜您使用的是表格2而不是表格

如果是这样,请按如下方式更改代码

 private void PLCTagsMenuItem_Click(object sender, EventArgs e)
    {
       Form form = new Form();
       form.ShowDialog();

    }
注意:
form.ShowDialog()
method将不处理或删除表单。您需要在关闭表单之前手动处理表单。此外,在关闭第二个窗体之前,无法访问第一个窗体。如果要访问这两个表单,请使用
form.Show()
方法

如果我猜错了,右键单击visual studio中的单词Form2,上下文菜单中将出现一个选项Resolve。它将显示包含类Form2的名称空间。选择正确的名称空间,错误将消失


如果知道包含类Form2的名称空间,也可以在名称空间部分手动键入该名称空间以避免错误。

应用程序是否编译?您是在调试过程中还是在编译过程中遇到此异常?您是否更改了form2所在的命名空间?您是否可以发布form2.cs内容?我肯定以前已经回答过这一问题。请说明您尝试了哪些特定的堆栈溢出问题,以及为什么这些问题没有帮助。你是直接找到答案并复制代码,还是试图理解那里解释的内容?您需要一个
使用Form2Namespace
或者您需要使用完整的名称空间
Form2Namespace.Form2 form=new Form2Namespace.Form2()。什么是“包含完整路径”?谢谢。这种情况是这样的,因为frmMain名称空间是“S71200Driver”,而Form2名称空间是“S71200.Driver”。更改了默认名称空间和Form2名称空间,现在它可以工作了@CodeCaster在本例中的完整路径是“S71200.Driver.Form2”@Shaharyar我想知道为什么需要编辑我的答案,因为很明显,我的答案在您编辑之前就已经足够容易理解和帮助了。@MladenOršolić这不够清楚,我编辑以供将来参考。
Form2Namespace.Form2 = new Form2Namespace.Form2();
using Form2Namespace;
 private void PLCTagsMenuItem_Click(object sender, EventArgs e)
    {
       Form form = new Form();
       form.ShowDialog();

    }