반응형
안녕하세요 hayee 입니다.
윈폼은 아래와 같이 모달과 모달리스로 생성할 수 있습니다. 저는 주로 알림창, 응답을 받아와야 할 경우에 모달로 생성하고 그 외에는 모달리스로 만들고 있습니다.
// 버튼 클릭 이벤트
private void btnTest_Click(object sender, EventArgs e)
{
Form1 subfrm = new Form1();
subfrm.ShowDialog(); // 모달
subfrm.Show(); // 모달리스
}
- ShowDialog(): 폼을 모달로 표시합니다. 또한 폼이 닫히면 DialogResult 속성을 지정하여 반환값을 지정할 수 있기 때문에 자식폼이 생성되어 있을 경우 부모 폼을 누를 수 없습니다. (자식폼에서 다른폼의 작업을 수행할 수 없다.)
- Show(): 폼을 모달리스로 표시합니다. (자식폼이 생성되어 있어도, 다른 폼의 작업을 수행할 수 있습니다.)
◈ 예제 소스 (1)
// 부모 폼 버튼 클릭 이벤트 함수.
private void btnTest_Click(object sender, EventArgs e)
{
Form3 subfrm = new Form3();
DialogResult result = subfrm.ShowDialog();
if (result == DialogResult.OK)
{
// 모달 창 닫힌 후 수행해야 할 동작들 정의 가능.
}
}
// 자식 폼
namespace WindowsFormsApp1
{
public partial class Form3 : Form
{
public Form3()
{
InitializeComponent();
}
// 버튼 클릭 이벤트
private void btnOK_Click(object sender, EventArgs e)
{
// 폼 닫힐 때 아래의 값으로 리턴한다. (DialogResult.OK)
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}
①: 부모 폼에서 버튼 클릭 시 모달로 자식폼이 생성됩니다.
②: OK 버튼 클릭 시 자식폼이 닫힌 후 DialogResult.OK 값을 리턴합니다.
# 틀린 부분이 있다면 댓글 부탁드립니다. #
# 댓글 달아주시면 늦게라도 블로그 방문하도록 할게요! 감사합니다. #
728x90
반응형
'hayee Study > 코딩_c#' 카테고리의 다른 글
[C#] DateTime 에 대하여 (0) | 2023.10.12 |
---|---|
[C#] AutoResetEvent, ManualResetEvent 에 대하여 (0) | 2023.10.08 |
[C#] ProgressBar 사용법. (+ 색상 변경하기) (5) | 2023.10.02 |
[C#] 작업스케줄러 (2) | 2023.10.02 |
[C#] ConcurrentQueue, Queue (1) | 2023.09.21 |