我有一个作为 dll 的表单应用程序,我想在我的控制台应用程序中 运行 它。我怎么做

i have a form application as a dll and i want to run it in my console application. how do i do that

我有一个控制台应用程序,我想 运行 来自这个 Dll 的代码:

这是 Dll 的代码:

namespace shutdown_msg
{
    public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Process.Start("shutdown", "/s /t 0");
    }

    private void label1_Click(object sender, EventArgs e)
    {

    }
}
}

这是我的控制台应用程序代码,应该 "run" Dll

  if (txt.IndexOf("shutdown") >= 0)
            {

            Console.WriteLine("shutdown was said");
            System.Windows.Forms.Application.Run(new shutdown_msg.Form1());

            }

您没有 运行 dll,您只是引用它。您可以 运行 一个 exe.

您有 2 个选择:

1-生成可执行文件:

您可以构建 windows 表单应用程序,然后您可以从项目文件夹中获取 'exe'。然后你可以 运行 它在你的控制台应用程序中使用

Process.Start("yourPathHere.exe");

2-生成dll:

在 Winforms 项目中转到项目 => 右键单击​​ => 属性 > 输出类型 => Class 库。

在控制台应用程序中: 右键单击引用 => 添加引用 => 浏览到您的 dll 路径。

并为 System.Windows.Forms.dll 添加参考。

然后从控制台应用程序:

static void Main(string[] args)
{
    var f = new WindowsFormsProjectName.Form1();
    f.ShowDialog();
}

或:

static void Main(string[] args)
{
    System.Windows.Forms.Application.Run(new WindowsFormsProjectName.Form1());
}
Application.Run(new shutdown_msg.Form1());

直接 运行 您的表格。

您可以在任何普通 WinForm 项目的 Program.cs 中找到相同的代码。