2010-12-14 4 views
3

내가 쓰는 프로그램에서 기본 양식을 사용하려면 먼저 열려는 파일을 선택해야합니다. 이 후Load 이벤트에서 OpenFileDialog를 열면 Windows Forms 양식이 백그라운드에서 열림

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

    fileName = openXmlFileDialog.FileName; 
    Activate(); 
} 

, MainForm 그것에() 활성화를 호출에도 불구 배경에 나타납니다 : 나는 폼의로드 이벤트 처리기에 다음을 썼다.

또 다른 문제점은 사용자가 취소를 눌러 Application.Exit()가 호출되면 아무런 효과가 없다는 것입니다.

답변

3

대신 코드를 Shown 이벤트에 넣으십시오.

+0

Form1.cs감사에서이 작업을 수행합니다! 그 두 가지 문제가 해결되었습니다! – neo2862

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(); 
    } 
} 

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