【问题标题】:Starting a form in C# console project?在 C# 控制台项目中启动表单?
【发布时间】:2010-11-01 15:32:01
【问题描述】:

我的项目是一个控制台客户端。我从控制台开始,然后显示表单。我使用下面的代码向用户显示一个空白表单(稍后我将添加控件)。但是表格显示了,但它被卡住了(不活动)。我该怎么办?

Console.WriteLine("Starting form");
Console_Client.Main mainform = new Main();
mainform.Show();
Console.ReadLine();

【问题讨论】:

    标签: c# .net .net-3.5 console-application


    【解决方案1】:

    试试ShowDialog()

    问题是您没有运行消息循环。有两种方法可以开始一种。 ShowDialog() 集成了一个,这样就可以了。另一种方法是在Show() 调用之后或将表单作为参数使用Application.Run()

    1. ShowDialog():

      mainform.ShowDialog();
      
    2. Application.Run() 无格式:

      mainform.Show();
      Application.Run();
      
    3. Application.Run() 格式为:

      Application.Run(mainform);
      

    所有这些工作。

    【讨论】:

    • ShowDialog() 在某些情况下会起作用,但是,如果没有真正的消息泵,表单的某些功能将不会按照您期望的方式运行。如果表格很简单,这很好......
    • 使用ShowDialog() 与在Main 中在Application.Run() 之前打开登录表单时相同。是的,对于简单的表单,这很有效。
    【解决方案2】:

    您需要启动一个完整的应用程序,就像 Windows 窗体应用程序通常那样:

     Console.WriteLine("Starting form");
     Console_Client.Main mainform = new Main();
    
     // This will start the message loop, and show the mainform...
     Application.Run(mainform);
    
     // This won't occur until the form is closed, so is likely no longer required.
     // Console.ReadLine();
    

    【讨论】:

    • 使用 System.Windows.Forms;也需要
    • @vishnu:是的,否则需要完全限定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2011-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多