表格结束

时间:2012-11-13 08:19:24

标签: 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.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)
    {

    }
}

1 个答案:

答案 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的新手,我会尽量远离线程,除非你需要它。