我在Visual Studio中以控制台应用程序启动了一个项目,现在发现我需要一个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)
{
}
}
}
答案 0 :(得分:0)
您最需要的是How do I convert a .NET console application to a Winforms or WPF application。
然后,您在注释中询问“如何让表单上的按钮运行Main()代码?”。我假设您知道单击updateBtn_Click
时将执行updateBtn
方法,并且假定这是您称为“我的表单上的按钮”的按钮。>
答案是您不想让按钮单击呼叫Program.Main
,因为那是应用程序的入口点。
我还假设您想保留命令行参数,因此需要将args
的处理保留在Program.Main
中。
无论其余功能是什么,您都可以将其直接移到表单中,移至updateBtn_Click
方法中。可能需要对代码进行调整,以便从那里获取命令行参数的值,因为它们的名称都是静态的(例如Program.
),因此在名称前加上Program.Portal
。
现在可能会满足您的要求。随着时间的流逝,您将意识到将代码塞入“后面的代码”(这是我刚刚告诉您要做的)并不是一个好主意。如果您重构代码,则可以从命令行,WinForm应用程序或WPF或Web应用程序使用功能。但是也许现在就足够了……