如何在Windows窗体中运行控制台应用程序代码?

3
我在VS中使用C#制作了一个控制台应用程序。
我想创建一个按钮,以运行某些代码。 在这种情况下,就是我在控制台应用程序中写的代码。 如何实现这一点?
基本上我想创建一组按钮,每个按钮执行特定的任务。 我该如何做?如何将我之前创建的代码与按钮关联起来以执行它?
1个回答

3

我可以提到两个选项中的其中之一:

  1. 将您的Console应用程序作为DLL处理,并在WinForm Runner Application中引用它。
  2. 将您的Console应用程序作为EXE文件处理,并使用Process.Start运行它。

第一个选项将使您能够在运行时调用方法,而第二个选项将将其作为完全独立的应用程序处理,具有所有单个应用程序的功能。

第二个选项的示例:

  1. 创建一个包含三个项目的解决方案,如下面的屏幕截图所示。

Solution

  1. 假设您的Console应用程序1的代码如下:
    using System;
        namespace SOC.ConsoleApp01
        {
            public class Program
            {
                public static void Main(string[] args)
                {
                    Console.WriteLine("Written from Console App 1");
                    Console.ReadLine();
                }
            }
        }

第二个是

using System;

namespace SOC.ConsoleApp02
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Written from Console App 2");
            Console.ReadLine();
        }
    }
}
  1. 现在在解决方案资源管理器中分别右键单击Console App1和Console App 2,然后单击生成重新生成来构建它们。 Build

这将生成类似下面截图中的可执行文件: App 1 Exe file App 2 Exe file

  1. 在你的WinForm项目中编写主题按钮的代码如下:
    using System;
    using System.Diagnostics;
    using System.Windows.Forms;
    
    namespace SO.Console.Apps.Runner
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
        private void button1_Click(object sender, EventArgs e)
        {
            Process.Start(@"C:\REPOS\SO.Console.Apps.Runner\SOC.ConsoleApp01\bin\Debug\SOC.ConsoleApp01.exe");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Process.Start(@"C:\REPOS\SO.Console.Apps.Runner\SOC.ConsoleApp02\bin\Debug\SOC.ConsoleApp02.exe");
        }
    }
    }

结果是 结果

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接