【问题标题】:How do I programmatically create a windows form?如何以编程方式创建 Windows 窗体?
【发布时间】:2012-08-07 22:22:31
【问题描述】:

我有一个名为 source.cs 的唯一 c# 源文件,我使用来自构建器的 CSharpCodeProvider 进行编译以获取可执行文件。

我会在构建器上设置一个选项,是否在应用程序启动时显示“关于”表单。

如何创建标题为 About Us 的表单,然后在(标签、RichTextEdit 等)中添加控件

类似

if (display_about_dialog) {
// code to display the form }

任何帮助将不胜感激

【问题讨论】:

  • if (true == condition)应该是if (condition),和你的问题无关,只是一点点:)
  • 我想在我用来编译文件的 Builder 上做一个选项,是否显示表单。如果设置为显示表单,则对话框将在文件执行时显示。否则,点击文件后不会出现任何内容
  • 我需要知道如何使用代码显示表单,因为我只有一个要编译的文件,即 source.cs

标签: c# .net csharpcodeprovider


【解决方案1】:

试试这样的:

using (Form form = new Form())
{
    form.Text = "About Us";

    // form.Controls.Add(...);

    form.ShowDialog();
}

Here's the documentation page for the System.Windows.Forms.Form class.

【讨论】:

  • 如何在 NET 2.0 中做同样的事情;抱歉,我忘记在标签中提及 .net2.0
  • 这应该在使用 C# 3 编译器的 .Net 2 中工作。如果您没有更新的编译器,则不能使用 var 关键字。我将编辑答案以反映这一点。
【解决方案2】:

如果你有一个类 MyForm : System.Windows.Forms.Form(你使用 windows 窗体生成器创建的)

你可以的

MyForm form = new MyForm();
form.Show();

启动 MyForm 的一个实例。


如果您想创建一个简单的确认或消息对话框,请查看MessageBox 的多种用途

MessageBox.Show("text");
MessageBox.Show("text", "title", MessageBoxButtons.OKCancel);

【讨论】:

  • 这正是我需要做的。但是如何使用设计器创建类,将Form1.Designer.cs的内容复制到source.cs并在main方法中使用上面的代码就足够了吗?
  • 您可以将新项目添加到您的项目中,并且您可以添加一个 Windows 窗体。它会自动为您生成您需要的文件。您可能希望在主表单中显示代码。如果它所做的只是显示一个新表单,应用程序将退出。
【解决方案3】:
Form aForm = new Form();

aForm.Text = @"About Us";
aForm.Controls.Add(new Label() {Text = "Version 5.0"});
aForm.ShowDialog();  // Or just use Show(); if you don't want it to be modal.

【讨论】:

    【解决方案4】:

    Form 是一个类,您可以像任何其他类一样实例化它,设置它的属性,调用它的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-28
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      相关资源
      最近更新 更多