我是C#的新手(从Java切换)我在C#中理解GUI时遇到了一些麻烦
我只是粘贴我所拥有的代码并让其解释大部分内容。
主类:
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中工作。我可以在其余代码中根据需要引用一个对象(及其组件)。
谢谢堆!
编辑:有很多混乱,所以这是我的Frame类:
public partial class Frame : Form
{
public Frame()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
答案 0 :(得分:1)
启动winforms应用程序的正常方法是通过file-> new winforms项目。当你这样做时,你得到“Program.cs”,它包含你的Main方法 - 你的应用程序的入口点。从那里你有这样的代码:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new ConfigForm());
}
在这个例子中,我启动了一个新的“ConfigForm”,它是一个Form,并在其中包含一些看起来像这样的代码:
public ConfigForm()
{
InitializeComponent();
// Other init work here
}
我通过右键单击项目并添加新表单来创建表单。
您可能需要查看Application.Run
方法,请参阅here。您可以指定“主窗体”,它将成为在应用程序持续时间内运行的主窗体,并在关闭时结束应用程序,或者您可以根据需要指定其他选项。也许最简单的解决方案是启动一个主表单,并且由于表单在应用程序期间是活动的,因此您可以在该表单中启动其他长时间运行的代码。如果它是你想要执行某种后台操作的代码,那么你可能想在它自己的线程中触发它。但是,线程很难,所以如果你是c#/ .net的新手,我会尽量远离线程,除非你需要它。