开发者

Ok button in VB.net

开发者 https://www.devze.com 2023-02-11 23:56 出处:网络
I have a form that contain a combobox, I\'m inserting an error check to check if the user hit the ok button before selecting a valid value from the combobox it mask the error and keep the form on focu

I have a form that contain a combobox, I'm inserting an error check to check if the user hit the ok button before selecting a valid value from the combobox it mask the error and keep the form on focus, till the user select a proper value, but in my case after raise the error the application still close after i press Ok, would you help me identify my mistake here is my code

    Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click开发者_如何学运维
    Try
        If SymbolComboBox.SelectedValue Is Nothing Then
            Throw New Exception()
        Else
            ErrorProvider1.SetError(SymbolComboBox, String.Empty)
            Me.DialogResult = System.Windows.Forms.DialogResult.OK
            Me.Close()
        End If

    Catch ex As Exception
        ErrorProvider1.SetError(SymbolComboBox, "Error")
    End Try
End Sub

Thank you in advance

Jp


Is your OK button the default accept button for the form ? If so, I beleive it will always return System.Windows.Forms.DialogResult.OK no matter the outcome, unless you specifically cancel the action. I do not remember how to cancel the action though, but if it's the case, I sugesst you remove that AcceptButton property of your form.

OR,

Is it possible that SymbolComboBox.SelectedValue is never 'Nothing' even when nothing is selected (like an empty string) ? I would use selectedIndex instead and check if it's equal to -1.

Hope that helps.


I'm not sure, but I do know that using exceptions like this to control program flow is a bad technique, and in this case unnecessary:

   Private Sub OK_Button_Click(ByVal sender As Object, ByVal e As EventArgs)
            Handles OK_Button.Click

    If SymbolComboBox.SelectedValue Is Not Nothing Then 
        ErrorProvider1.SetError(SymbolComboBox, String.Empty)
        Me.DialogResult = System.Windows.Forms.DialogResult.OK
        Me.Close()
    Else
        ErrorProvider1.SetError(SymbolComboBox, "Error")
    End If        

End Sub


Why not look at using a required field validator to do this? Are you doing Web forms or Win Forms development? Also what is the value of SymbolComboBox.SelectedValue when you get this issue?

0

精彩评论

暂无评论...
验证码 换一张
取 消