2014-06-05 65 views
1

我想寫一個Windows應用程序來做一些文件閱讀,操作和編寫在C#中,我主要完成除了當我運行我的代碼時它不會打開我的應用程序,但而是把我帶到一個空白的終端屏幕。Windows窗體應用程序不會初始化

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(),但它不會以任何理由將其識別爲我的對象的方法。

+2

你有沒有機會創建一個控制檯應用程序項目,然後添加一個WinForm它? –

回答

4

在你的主要方法中,你應該啓動UI消息循環。 Application.Run是爲你做的。此外,它還會顯示您的表單並保持應用程序同時運行。

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

@ user3712526:需要更多幫助?如果沒有,請不要忘記通過在您最喜歡的問題之前勾選複選標記來回答您的問題。 –

2

你需要調用Application.Run

下面是標準的Main()看起來像的WinForms

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

正如其他人所指出的,你需要調用Application.Run(f),但如果你看到一個命令窗口,您可能需要在項目設置中更改輸出類型:

enter image description here