Last active
August 29, 2015 14:27
-
-
Save wolf99/58efd46081fb86ea32c2 to your computer and use it in GitHub Desktop.
A VB.NET control, derived from ComboBox, that adds a SelectedIndexChanging event to allow the change to be cancelled
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'This is a VB version of the C# code by Mike Bevers as of 19 Aug 2015 12:07 at | |
'http://www.mikebevers.be/blog/2010/02/extended-combobox-with-a-selection-changing-event/ | |
'Usage: | |
'Private Sub BetterComboBox1_SelectedIndexChanging( _ | |
' sender As System.Object, _ | |
' e As System.ComponentModel.CancelEventArgs _ | |
') Handles BetterComboBox1.SelectedIndexChanging | |
' | |
' If True Then | |
' e.Cancel = True | |
' EndIf | |
'End Sub | |
Imports System.Windows.Forms | |
Public Class BetterComboBox | |
Inherits ComboBox | |
Public Event SelectedIndexChanging As System.ComponentModel.CancelEventHandler | |
Private _lastIndex As Integer = -1 | |
<System.ComponentModel.Browsable(False)> | |
Public ReadOnly Property LastIndex As Integer | |
Get | |
Return _lastIndex | |
End Get | |
End Property | |
Public Sub New() | |
MyBase.New() | |
_lastIndex = -1 | |
End Sub | |
Protected Overridable Sub OnSelectedIndexChanging(e As System.ComponentModel.CancelEventArgs) | |
RaiseEvent SelectedIndexChanging(Me, e) | |
End Sub | |
Protected Overrides Sub OnSelectedIndexChanged(e As System.EventArgs) | |
If _lastIndex <> SelectedIndex Then | |
Dim cancelEventArgs As New System.ComponentModel.CancelEventArgs() | |
OnSelectedIndexChanging(cancelEventArgs) | |
If cancelEventArgs.Cancel = False Then | |
_lastIndex = SelectedIndex | |
MyBase.OnSelectedIndexChanged(e) | |
Else | |
SelectedIndex = _lastIndex | |
End If | |
End If | |
End Sub | |
End Class |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment