C#

[C#]Form 생성 여부 확인 예제

선영아 사랑해 2016. 1. 28. 09:29


MDI로 프로그램을 개발하다보면 많은 폼을 화면에 띄워야 하는 경우가 발생을 합니다.


그런데 자식폼이 띄워져있는데 부모폼에서 이벤트를 실행하면 동일한 자식폼이 실행되는걸 확인하셨을 겁니다.


그래서 이번에 소개 할 코드는 해당 폼이 생성 되어져 있는지 확인 할 수 있는 코드를 소개하겠습니다.


아래의 코드를 간략하게 설명하자면, 버튼을 클릭했을 때 Form1이 열려있는 상태인지 체크 후 열리있는 경우에는 폼을 가장 앞으로 가져와


화면에 표시하며, 열려있지 않은 경우에만 폼을 생성하게 되어있습니다.


Form1 form1;


private Form IsFormAlreadyOpen(Type FormType)
{
    foreach (Form OpenForm in Application.OpenForms)
    {
        if (OpenForm.GetType() == FormType)
            return OpenForm;
    }

    return null;
}

private void button1_Click(object sender, EventArgs e)
{
    if ((IsFormAlreadyOpen(typeof(Form1)) == null))
    {
        form1 = new Form1();

        form1.MdiParent = this;

        form1.ConnectionString = stringConnInfo;

        form1.Show();
    }
    else
    {
        form1.WindowState = FormWindowState.Normal;

        form1.BringToFront();

        form1.Activate();
    }
}