본문 바로가기

Programing (프로그래밍)/WPF & C# (C Sharp)

WPF & C# (C Sharp) - 메세지박스 종류 및 비동기식 띄우기 ( MessageBox.Show / 메시지 / 띄우기 / 나타내기 )

728x90
반응형

 

 WPF & C# (C Sharp) - 메세지박스 종류 ( MessageBox.Show / 메시지 / 띄우기 / 나타내기 )

 

 

@ Messagebox.Show()

 

 

1
2
string msg = "메세지 추가";
MessageBox.Show(msg);
cs

가장많이 쓰이는 가장 단순한 코드다.

 

@ Messagebox.Show()

 

 

1
2
MessageBox.Show(msg, title);
MessageBox.Show("MessageBoxButton.OK", title, MessageBoxButton.OK);
cs

 

이것 역시나 많이 쓰이는 코드, 요즘엔 타이틀 추가 안하고 메세지만 넣는게 추세이기는 하지만,

간혹 타이틀명으로 컨트롤 하기 편한경우가 있어서 간간이 써주고 있다.

 

@ Messagebox.Show("")

 

 

1
2
3
4
5
6
7
8
 if (MessageBox.Show("MessageBoxButton.YesNo", title, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
 {
textBk.Text = "Yes~!";
}
else
{
textBk.Text = "No...";
cs

 

1
2
3
 // 삼항식 사용
textBk.Text = MessageBox.Show("MessageBoxButton.YesNo", title, MessageBoxButton.YesNo) == MessageBoxResult.Yes? "Yes~!" : "No...";
 
cs

 

위 두 코드는 같은 역할을 한다.

정말 짧은건 삼항식을 사용하면 좋을듯 싶어서 추가해봤다.

 

@ Messagebox.Show("")

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
 MessageBoxResult result1 = MessageBox.Show(msg, title, MessageBoxButton.YesNoCancel, MessageBoxImage.Question, MessageBoxResult.Yes);
 if (result1 == MessageBoxResult.Yes)
{
  textBk.Text = "Yes~!";
}
else if (result1 == MessageBoxResult.No)
{
  textBk.Text = "No...";
}
else if (result1 == MessageBoxResult.Cancel)
{
  textBk.Text = "Cancel...";
}
cs

 

이제 둘 중하나의 선택이 아니라 셋중하나의 선택이다.

이럴땐 Result 의 값을 사용하는편이 훨씬 편리하다.

 

 @ 나머지...

내용입력

 

 

 

보면 알겠지만 버튼 몇개 나오게 할것인지와, 해당버튼에 따른 값을 나타내주고 있다.

 

 

 

 

 

1
MessageBox.Show(msg,"Error",MessageBoxButton.OK,MessageBoxImage.Asterisk,MessageBoxResult.OK);
cs

MessageBoxImage 이다.

메세지박스 좌측에 이미지를 나타내준다.

종류 참 많다.같은 이미지도 있는거 같다. 왜 만들었을까?

모르겠다. 항상 뭔가 이유가 있었으니 저것도 그럴거라고 생각하자. ^^

 

 

MessageBoxResult 의 값을 나타낸다.

 

 

 

비동기식 메세지박스 띄우기 MessageBox ( 아래 코드 반복시 계속해서 메세지 박스를 띄우지는 않는다. )

1
2
3
4
5
Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(delegate
{
    MessageBox.Show("비동기식");
}));
cs

 

 

http://insurang.tistory.com

 

 

728x90
반응형