본문 바로가기
백엔드/C#

Form을 하나만 열고 싶을 때

by 1005ptr 2018. 5. 11.
반응형

어떤 Form이 동시에 하나만 켜져야 한다면 어떻게 해야 할까


ManageForm이 있다고 하자


방법 1. ManageForm 내부에 static ManageForm을 만드는 방법

 - ManageForm 안에 static MangeForm을 만들고

 - 생성자를 private으로 만든다

 - static ManageForm이 null일 때만 생성자를 호출하여 반환하고

 - 그렇지 않으면 기존 form을 반환한다


public ManageForm : Form

{

private static ManageForm _form = null;


private ManageForm(){

intialize어쩌고();

}


public ManageForm CreateManageForm()

{

if(_form == null)

return new ManageForm();


return _form;

}

}



방법 2. Form 생성자를 호출하는 곳에서 null인지 확인하는 방법

 - 차일드 폼을 멤버변수로 들고있고

 - Click Event 함수에서 폼을 열 때 처리하는 방법


class ParentForm : Form

{

private ManageForm form = null;


public void ManageBtn_Clicked(~~){

if(form == null || form.isDisposed)

{

form = new ManageForm();

}

form.Show();

}

}

반응형

'백엔드 > C#' 카테고리의 다른 글

파일 경로 찾기 - OpenFileDialog  (0) 2018.05.13
DataTable을 DataGridView에 DataBinding  (0) 2018.05.11
Mdi Form / Mdi Child Form  (0) 2018.05.10
Parent/Child DataGridView  (0) 2018.05.10
Dictionary에서 배열값 초기화 하기  (0) 2018.05.10

댓글