【问题标题】:Message box confirmation on button press按下按钮时的消息框确认
【发布时间】:2020-06-02 22:55:17
【问题描述】:

我有一个问题,无论我在消息框中按是还是否,我的代码都会被清除。我相信我可能也可以摆脱我的 if 语句,我不知道为什么我会这样包含它们

Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
    If MsgBox("Are you sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question = DialogResult.Yes) Then

        If (chkLevel3Support.Checked) Then
            chkLevel3Support.Checked = False
        End If

        If (chkOnSiteTraining.Checked) Then
            chkOnSiteTraining.Checked = False
        End If

        If (chkCloudBackup.Checked) Then
            chkCloudBackup.Checked = False
        End If

        If (rdbYearlyLicense.Checked) Then
            rdbYearlyLicense.Checked = False
        End If

        If (rdbOneTIme.Checked) Then
            rdbOneTIme.Checked = False
        End If

        lbCostofLicenseOutput.Text = " "

        lbCostofOptionalOutput.Text = " "

        lbTotalCostSale.Text = " "
    End If
End Sub

【问题讨论】:

  • 您提供的代码没有MessageBox。您的意思是包含注释代码吗?你能修复它,让它代表你的实际代码吗?
  • 请使用Option Strict On 让Visual Studio 告诉您问题出在哪里。
  • 如果必须以False 结尾,那么检查chkLevel3Support.Checked 等是没有意义的。
  • @AndrewMorton 不要忘记 CheckState.Intermediate :) chkLevel3Support.CheckState = CheckState.Indeterminate If chkLevel3Support.Checked Then chkLevel3Support.Checked = False
  • @djv 大声笑,我想没有人确定这是否会在规范中:)

标签: vb.net forms button


【解决方案1】:

我认为你的右括号用错了地方。试试这个:

If MsgBox("Are you sure?", MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then

或者按照 Andrew 提出的 .NET 方式进行:

If MessageBox.Show("Are you sure?", "Confirm clear", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then

【讨论】:

  • 关闭,但第二个参数应该是MsgBoxStyle。不使用 Option Strict On 的危险很多。
  • 解决了!我可以相信我花了这么长时间并没有注意到!我很感激
  • @AndrewMorton 这也是靠记忆不仔细阅读的危险。
猜你喜欢
  • 2011-06-24
  • 2018-09-05
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多