代码之家  ›  专栏  ›  技术社区  ›  Vishnu Pradeep

在C控制台项目中启动表单?

  •  4
  • Vishnu Pradeep  · 技术社区  · 14 年前

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

    Console.WriteLine("Starting form");
    Console_Client.Main mainform = new Main();
    mainform.Show();
    Console.ReadLine();
    
    2 回复  |  直到 7 年前
        1
  •  9
  •   Pieter van Ginkel    14 年前

    尝试 ShowDialog() .

    问题是您没有运行消息循环。有两种方法可以启动一个。 显示对话框() 有一个集成的,这样就可以工作了。另一种选择是使用 Application.Run() ,或者在 Show() 调用或将窗体作为参数。

    1. 显示对话框() :

      mainform.ShowDialog();
      
    2. 应用程序.run() 无形式:

      mainform.Show();
      Application.Run();
      
    3. 应用程序.run() 形式:

      Application.Run(mainform);
      

    所有这些工作。

        2
  •  5
  •   Reed Copsey    14 年前

    您需要启动一个完整的应用程序,就像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();