2010-12-14 60 views
3

我需要用戶選擇要在我正在編寫的程序中使用主窗體之前打開的文件。我寫在窗體的Load事件處理程序如下:如果我在其Load事件中打開OpenFileDialog,將在後臺打開Windows窗體窗體

private void MainForm_Load(object sender, EventArgs e) 
{ 
    if (openXmlFileDialog.ShowDialog() != DialogResult.OK) 
     Application.Exit(); 

    fileName = openXmlFileDialog.FileName; 
    Activate(); 
} 

在此之後,MainForm中出現的背景,儘管調用激活()就可以了。

另一個問題是,如果用戶按下Cancel並調用Application.Exit(),則它不起作用。

回答

3

將代碼放入Shown事件中。

+0

謝謝!這解決了這兩個問題! – neo2862 2010-12-14 17:19:48

1

爲此在Program.cs

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    OpenFileDialog o = new OpenFileDialog(); 
    if (DialogResult.OK == o.ShowDialog()) 
    { 
     Application.Run(new Form1(o.FileName)); 
    } 
    else 
    { 
     Application.Exit(); 
    } 
} 

Form1.cs

string filename; 
public Form1(string filename) 
{ 
    this.filename=filename; 
    InitializeComponent(); 
}