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