繁体   English   中英

C#控制台应用程序作为Windows窗体

[英]C# Console App as a Windows Form

我在视觉工作室中以控制台应用程序开始了一个项目,现在发现我需要一个UI(窗体),但是当我运行该程序时,它就是一个控制台。 无论如何,是否需要通过按钮事件运行控制台应用程序中的Program.cs代码?

我的代码的尖刺:

    using System;
using System.Net.Sockets;
using System.IO;
public class Program
{

    public static string name = null;
    public static string userloc = null;
    public static string protocol = null;

    public static int Portal = 43;
    public static string Address = "whois.net.dcs.hull.ac.uk";

    static void Main(string[] args)
    {


        for (int i = 0; i < args.Length; i++)
        {
            switch (args[i])
            {
                case "-h0":
                    protocol = "-h0";
                    break;

                case "-h1":
                    protocol = "-h1";
                    break;

                case "-p":
                    Portal = int.Parse(args[i + 1]);
                    ++i;
                    break;

表格代码:

namespace location
{
    public partial class Location : Form
    {
        public Location()
        {
            InitializeComponent();
        }

        private void updateBtn_Click(object sender, EventArgs e)
        {

        }
    }
}

您最需要的是如何将.NET控制台应用程序转换为Winforms或WPF应用程序

然后,您在注释中询问“我如何让表单上的按钮运行Main()代码?”。 我假设您知道单击updateBtn时将执行updateBtn_Click方法,并且我假设这是您称为“我的表单上的按钮”的按钮。

答案是,您不想让按钮单击调用Program.Main ,因为那是应用程序的入口点。

我还假设您想保留命令行参数,因此需要将args的处理留在Program.Main

无论其余功能是什么,您都可以将其直接移到表单中,并updateBtn_Click方法中。 可能需要对代码进行调整,以在命令行名称前加上Program.来获取命令行参数的值Program. 因为它们都是静态的(例如Program.Portal )。

目前,这可能会满足您的要求。 随着时间的流逝,您将意识到将代码塞入“后面的代码”(这是我刚刚告诉您要做的)并不是一个好主意。 如果您重构代码,则可以从命令行,WinForm应用程序或WPF或Web应用程序使用功能。 但是也许现在已经足够了...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM