【发布时间】:2022-08-04 05:32:22
【问题描述】:
我正在 Visual Studio 中编写 C# Windows 窗体程序。我有一个按钮,可以创建并显示(打开)一个名为 VideoWindow 的新表单(窗口)。我可以在 Visual Studio 的设计工作区中编辑 MainWindow,这使我可以直观地编辑其内容。但是,我找不到用 VideoWindow 做同样事情的方法。我尝试右键单击 VideoWindow 并单击 View Designer,但它只是将我带到 MainWindow 设计器。如何打开第二个 VideoWindow 的设计器?这可能吗?下面是创建和打开新表单的代码:
private void ButtonWindow(object sender, EventArgs e)
{
Form VideoWindow = new Form();
VideoWindow.Size = new Size(500, 300);
VideoWindow.Show();
}
-
在设计器中,您只需添加一个新表单并将其命名为 VideoForm 并添加控件等。在您的代码中,您将其初始化
VideoForm vf = new VideoForm();vf.Show(); -
@LarsTech 因此,如果您不通过 Visual Studio GUI 创建表单,而只是手动编写 class.cs 文件,那么是否无法为该新表单类调用设计器?
-
我不知道您所说的
manually write a class.cs file指的是创建新表单是什么意思。 -
@LarsTech 我的意思是您可以通过单击 Project -> Add Form 在 Visual Studio 中创建一个新表单,这将创建新的 form.cs 文件并使用样板文件填充它,并可能将其连接到 GUI 设计器。相反,可以只创建名为 form.cs 的文本文件(我假设是 form.Designer.cs)并手动编写所需的代码来创建从 Form 继承的类,并通过 Project -> Add existing item 将它们添加到项目中。如果这样做,您将无法访问该表单类的设计器
-
好的,我刚刚对其进行了测试,并且已经回答了我自己的问题。如果您手动创建类似 TestForm.cs 并让类继承自 System.WindowsForms 窗体,然后按 Shift F7,即使没有 TestForm.Designer.cs 文件,Visual Studio 也会为该窗体启动 GUI 设计器。然后它将自动在 TestForm.cs 中创建 InitializeComonent 方法,并在该方法中添加 SuspendLayout、窗口大小、名称和 ResumeLayout 属性。在这种安排下,设计器元素不会像往常一样在单独的 form.Designer.cs 文件中与类定义分开
标签: c# .net visual-studio winforms designer