2010-12-14 52 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(); 
} 
相关问题