Windows窗体应用程序不会初始化

时间:2014-06-05 18:48:25

标签: c# winforms

我试图编写一个Windows应用程序,用C#进行文件读取,操作和编写,我大部分时间都在完成,但是当我运行我的代码时它不会打开我的应用程序而是带给我到一个空白的终端屏幕。

public partial class Form1 : Form
{
    public string fPath;
    public string nfName;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        fPath = textBox1.Text;
        nfName = textBox2.Text;
    }

    public string getPath()
    {
        return fPath;
    }

    public string getFileName()
    {
        return nfName;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
        {
            this.textBox1.Text = folderBrowserDialog1.SelectedPath;
        }
    }
}

这是应用程序本身的代码。 ^^^

static void Main()
{
    Form1 f = new Form1();
    string path = f.getPath();
    string nFileName = f.getFileName();

}

这是我main开头的代码。 ^^^

我在不同的类和相同的命名空间中有这两个部分。我希望这个main成为入口点,然后让它调用我的表单并初始化它以便我可以输入我的文件路径并处理它但是尽管创建了Form1类的实例,它不会初始化。我已经尝试过f.Form1(),但无论出于什么原因,它都不会将其视为我的对象的方法。

3 个答案:

答案 0 :(得分:4)

在main方法中,您应该启动UI消息循环。 Application.Run为你做到了。此外,它将为您显示表单并同时保持应用程序运行。

Form1 f = new Form1();
...
Application.Run(f);

答案 1 :(得分:2)

您需要致电Application.Run

以下是WinForms标准Main()的内容

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }

答案 2 :(得分:0)

正如其他人所说,您需要调用Application.Run(f),但如果您看到命令窗口,则可能需要在项目设置中更改输出类型:

enter image description here