C# 窗体自动关闭
我是C#(从Java转换)新手,在理解C中的GUI时遇到了一些困难# 我只需粘贴我的代码,让它解释大部分内容 主要类别:C# 窗体自动关闭,c#,winforms,visual-studio-2012,C#,Winforms,Visual Studio 2012,我是C#(从Java转换)新手,在理解C中的GUI时遇到了一些困难# 我只需粘贴我的代码,让它解释大部分内容 主要类别: Frame frame; keepRunning = true; public GraphicsComponent() { frame = new Frame(); frame.Show(); } public void run() { while (keepRunning) { Console.WriteL
Frame frame;
keepRunning = true;
public GraphicsComponent()
{
frame = new Frame();
frame.Show();
}
public void run()
{
while (keepRunning)
{
Console.WriteLine("Running");
}
}
public static void Main()
{
GraphicsComponent gameComponent = new GraphicsComponent();
gameComponent.run();
}
使用frame.Show()方法,它会快速出现和消失。但是“正在运行”的循环正在运行
我看到的另一个方法是另一个名为ShowDialoge()的方法,该方法保持窗口打开,但阻止其余代码运行,直到关闭为止
我想使用它的方式基本上是GUI在Java中的工作方式。我可以根据需要在代码的其余部分引用对象(及其组件)
谢谢你
编辑:有很多困惑,所以这里是我的框架类:
public partial class Frame : Form
{
public Frame()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
启动winforms应用程序的常规方法是通过文件->新建winforms项目。当您这样做时,您会得到“Program.cs”,其中包含您的主方法—应用程序的入口点。从这里可以得到如下代码:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ConfigForm());
}
public ConfigForm()
{
InitializeComponent();
// Other init work here
}
在本例中,我启动了一个新的“ConfigForm”,它是一个表单,在它的ctor中包含如下代码:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ConfigForm());
}
public ConfigForm()
{
InitializeComponent();
// Other init work here
}
我通过右键单击项目并添加新表单来创建表单
您可能需要查看
应用程序。运行方法,请参阅。您可以指定一个“主窗体”“在应用程序运行期间,哪个窗体将成为主窗体,当关闭时将结束应用程序,或者如果需要,可以指定其他选项。”。也许最简单的解决方案是启动一个主窗体,由于该窗体在应用程序期间处于活动状态,因此可以启动该窗体内的其他长时间运行的代码。如果您希望一直在执行某种后台操作的代码,那么您可能希望在它自己的线程中启动它。然而,线程是很难的,所以如果你是c#/.net新手,除非你需要,否则我会尽量远离线程。你看过winforms designer吗?通常,您会创建一个从System.Windows.Forms.Form继承的类(例如Form1),并调用Application.Run(new Form1());在你的主要方法中。是的,这是一个奇怪的设置。。。还有,keepRunning是在哪里定义的?您可能应该使用一个表单。框架不是您需要的,WPF也不是WinForms@Alan我不是起诉框架,我只是称之为类框架,它是一种形式。跑步意味着保持整洁。我使用一个表单,这个调用叫做Frame。我怎样才能在表单之外运行代码?