programing

YesNoCancel이 있는 MessageBox - No & Cancel이 동일한 이벤트를 트리거함

powerit 2023. 6. 2. 21:23
반응형

YesNoCancel이 있는 MessageBox - No & Cancel이 동일한 이벤트를 트리거함

나는 메시지 박스를 가지고 있습니다.YesNoCancel단추...

  • 누르기Yes일부 작업을 수행하고 응용 프로그램을 닫습니다. - 정상적으로 작동합니다.
  • 누르기No아무것도 하지 않고 응용프로그램을 닫습니다. (아래 참조)
  • 누르기Cancel에서는 아무 작업도 수행하지 않고 응용프로그램을 열어 둡니다(아래 참조).

사용 중DialogResult.No단추와DialogResult.Cancel단추를 끼웁니다.하지만 둘 중 하나를 누르면 작동이 시작됩니다.DialogResult.Cancel이벤트. 뭐가 문제야?

이것은 잘 작동할 것입니다.

Dim result As DialogResult = MessageBox.Show("message", "caption", MessageBoxButtons.YesNoCancel)
If result = DialogResult.Cancel Then
    MessageBox.Show("Cancel pressed")
ElseIf result = DialogResult.No Then
    MessageBox.Show("No pressed")
ElseIf result = DialogResult.Yes Then
    MessageBox.Show("Yes pressed")
End If

저는 모든 답이 맞는 것 같습니다.저는 그저 조금 다른 코드를 쓰고 싶습니다.제 생각에, 당신은 대화상자의 결과를 저장하기 위해 추가 변수를 사용하지 않고 그것을 할 수 있습니다.확인:

VB 코드

Select Case MsgBox("Your Message", MsgBoxStyle.YesNoCancel, "caption")
                    Case MsgBoxResult.Yes
                        MessageBox.Show("Yes button")
                    Case MsgBoxResult.Cancel
                        MessageBox.Show("Cancel button")
                    Case MsgBoxResult.No
                        MessageBox.Show("NO button")
 End Select

C# 코드

switch (MessageBox.Show("Message", "caption", MessageBoxButtons.YesNoCancel))
        {
            case DialogResult.Yes: MessageBox.Show("Yes"); break;
            case DialogResult.No: MessageBox.Show("No"); break;
            case DialogResult.Cancel: MessageBox.Show("Cancel");  break;
        }

Darin의 예에 조금 더 추가하기 위해 아래에는 상자가 있는 아이콘이 표시됩니다.http://msdn.microsoft.com/en-us/library/system.windows.forms.messagebox(v=vs.110).aspx

Dim result = MessageBox.Show("Message To Display", "MessageBox Title", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)

If result = DialogResult.Cancel Then

    MessageBox.Show("Cancel Button Pressed", "MessageBox Title",MessageBoxButtons.OK , MessageBoxIcon.Exclamation)

ElseIf result = DialogResult.No Then

    MessageBox.Show("No Button Pressed", "MessageBox Title", MessageBoxButtons.OK, MessageBoxIcon.Error)

ElseIf result = DialogResult.Yes Then

    MessageBox.Show("Yes Button Pressed", "MessageBox Title", MessageBoxButtons.OK, MessageBoxIcon.Information)

End If
dim result as dialogresult
result = MessageBox.Show("message", "caption", MessageBoxButtons.YesNoCancel)
If result = DialogResult.Cancel Then
    MessageBox.Show("Cancel pressed")
ElseIf result = DialogResult.No Then
    MessageBox.Show("No pressed")
ElseIf result = DialogResult.Yes Then
    MessageBox.Show("Yes pressed")
End If

사용:

Dim n As String = MsgBox("Do you really want to exit?", MsgBoxStyle.YesNo, "Confirmation Dialog Box")
If n = vbYes Then
    MsgBox("Current Form is closed....")
    Me.Close() 'Current Form Closed
    Yogi_Cottex.Show() 'Form Name.show()
End If

이것이 당신이 그것을 하지 않고 할 수 있는 방법입니다.Dim,사용.MessageBox.Show대신에MsgBox이것이 내 생각에 그것을 쓰는 가장 깨끗한 방법입니다!

Select Case MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo)
    Case vbYes
        ' Other Code goes here
    Case vbNo
        ' Other Code goes here
End Select

를 사용하면 더 단축할 수 있습니다.If:

If MessageBox.Show("Message", "Title", MessageBoxButtons.YesNo) = vbYes Then
    ' Other Code goes here
End If

확인 알림을 닫는 중:

Private Sub cmd_exit_click()

    ' By clicking on the button the MsgBox will appear
    If MsgBox("Are you sure want to exit now?", MsgBoxStyle.YesNo, "closing warning") = MsgBoxResult.Yes Then ' If you select yes in the MsgBox then it will close the window
               Me.Close() ' Close the window
    Else
        ' Will not close the application
    End If
End Sub

예/아니오 프롬프트를 사용하는 방법은 다음과 같습니다.

If MsgBox("Are you sure?", MsgBoxStyle.YesNo) <> MsgBoxResults.Yes Then
    Exit Sub
End If

올랜도와 피터의 답변을 업데이트합니다.

Select Case MsgBox("Your Message", VbMsgBoxStyle.vbYesNoCancel, "caption")
                    Case VbMsgBoxResult.vbYes
                        MsgBox "Yes button"
                    Case VbMsgBoxResult.vbCancel
                        MsgBox "Cancel button"
                    Case VbMsgBoxResult.vbNo
                        MsgBox "No button"
End Select

사용해 보세요.

MsgBox("Are you sure want to Exit", MsgBoxStyle.YesNo, "")
                If True Then
                    End
                End If

언급URL : https://stackoverflow.com/questions/2256909/messagebox-with-yesnocancel-no-cancel-triggers-same-event

반응형