[WF] 윈폼프로젝트 폼 숨긴채 실행하기

생각보다 이것에 대한 정보가 많이 없고 알려진 방법중에 제한점이 있는 방법들이 많아서

제일 괜찮은 방법을 찾은김에 정리해봅니다.

 

//InitializeComponent 후에 바로 ShowInTaskbar를 false로 하여 작업표시줄에 나오지 않게 합니다.

//ShowInTaskbar를 false로 하면 키보드 후킹이 되지 않습니다.

//따라서 Form이 보이고 난후 다시 true로 바꿔줘야합니다.

//Opacity를 0으로 하면 Form이 보이지 않습니다. 이또한 후에 다시 바꿔줘야합니다.

public Form()
{
     InitializeComponent();

     this.ShowInTaskbar = false;
     this.Opacity = 0;

}

 

//Form의 Shown 이벤트에서 Hide메소드 혹은 Visible = false를 해서 폼을 안보이게 합니다.

//그리고 위의 ShowInTaskbar와 Opacity 건든것을 원상복구 해줍니다.

//폼이 보이기 전에는 Hide메소드가 되지 않기 때문에 이렇게 하는 것입니다.

private void Form_Shown(object sender, EventArgs e)
{
    this.Hide();

    this.ShowInTaskbar = true;
    this.Opacity = 100;

    //키보드 후킹 세팅할게 있다면 이 이후에..

}

 

//폼을 보이고 숨기는 건 이런식으로

private void FormShowHide()
{
    if (this.Visible)
    {
        this.Hide();
    }
    else
    {
        this.Show();
    }
}

 

코드로 Shown이벤트를 핸들러에 추가하려면

Form()에 this.Shown += Form_Shown;

을 추가하세요.