Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让c#在控制台应用程序旁边运行windows窗体功能_C# - Fatal编程技术网

如何让c#在控制台应用程序旁边运行windows窗体功能

如何让c#在控制台应用程序旁边运行windows窗体功能,c#,C#,我正在使用c#,并且有一个控制台应用程序。现在,为了集成GUI,我添加了一个windows窗体应用程序。问题是,windows窗体和控制台应用程序需要通信,但控制台应用程序中内置的功能在关闭windows窗体之前无法工作 它就像windows窗体重叠一样。您只需进入解决方案属性页、公共属性、启动项目,即可控制午餐行为。在那里,您可以在操作部分指定首先运行哪个程序。从您编写的内容,我想我理解您是在application.run(new Form1())之后编写控制台应用程序代码的 因此,您的代码可

我正在使用c#,并且有一个控制台应用程序。现在,为了集成GUI,我添加了一个windows窗体应用程序。问题是,windows窗体和控制台应用程序需要通信,但控制台应用程序中内置的功能在关闭windows窗体之前无法工作


它就像windows窗体重叠一样。

您只需进入解决方案属性页、公共属性、启动项目,即可控制午餐行为。在那里,您可以在操作部分指定首先运行哪个程序。

从您编写的内容,我想我理解您是在
application.run(new Form1())之后编写控制台应用程序代码的
因此,您的代码可能如下所示:

static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());

        //Some more things to do here
    }
}
静态类程序
{
/// 
///应用程序的主要入口点。
/// 
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(新Form1());
//还有一些事情要做
}
}
这不是我们要走的路。项目可以是控制台应用程序。或者winforms项目。 如果需要两者同时运行,请使用两个项目。
如果需要它们进行通信,请使用通信对象,例如WCF framework server/client。

创建一个新的控制台项目,并添加对
System.Windows.Forms
的引用。向项目中添加新表单。例如,我在表单中添加了一个按钮,并将其设置为
DialogResult
Ok

在程序的main方法中,创建窗体的实例,并使用
Show
ShowDialog
打开它。下面是一个例子:

static void Main(string[] args)
{
    Console.WriteLine("Opening window...");

    var result = new TestForm().ShowDialog();

    if (result == System.Windows.Forms.DialogResult.OK)
        Console.WriteLine("Form closed by button.");
    else
        Console.WriteLine("Form closed otherwise.");

    Console.ReadLine();
}
从窗体中的任何位置,您都可以使用静态
Console
类访问控制台。下面是一个从表单构造函数打印一些状态信息的示例:

public partial class TestForm : Form
{
    public TestForm()
    {
        InitializeComponent();

        Console.WriteLine("Form initialized.");
    }
}

如果已将项目创建为类库或windows窗体项目,请右键单击该项目,导航到属性,并将“输出类型”切换为“控制台应用程序”。

控制台应用程序和windows窗体应用程序的关系如何?他们是在同一个项目中,还是在不同的项目中?您能给出一些示例代码吗?您所说的“它们需要通信”和“函数(…)不工作”是什么意思?如果不想同时调试2个程序,则必须运行2个visual studio实例。您还可以查看此处的讨论: