私は現在、このスレッドHow can I handle ComboBox selected index changing?の2番目の応答をvb(新しいSelectedIndexChangingEventを導入するためにComboBoxをサブクラス化することを示唆する応答)に実装しようとしています。イベントハンドラvb.net Subclassing ComboBox - 取り消すことができるSelectedIndexChangingイベントを作成しようとしています
Private Sub MyComboBox1_SelectedIndexChanging(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles MyComboBox1.SelectedIndexChanging
MsgBox("Changing")
End Sub
は決してヒットしません。私は、selectedIndexChanging(小文字の最初の文字)変数を初期化する方法と関係があると考えています。何かご意見は?
Imports System.ComponentModel
Public Class MyComboBox
Inherits ComboBox
Public Event SelectedIndexChanging as CancelEventHandler
Public LastAcceptedSelectedIndex As Integer
Public Sub New()
LastAcceptedSelectedIndex = -1
End Sub
Protected Sub OnSelectedIndexChanging(e As CancelEventArgs)
Dim selectedIndexChanging as CancelEventHandler = SelectedIndexChanging
If Not SelectedIndexChanging Is Nothing Then
selectedIndexChanging(Me, e)
End If
End Sub
Protected Overrides Sub OnSelectedIndexChanged(e As EventArgs)
If LastAcceptedSelectedIndex <> SelectedIndex Then
Dim cancelEventArgs = New CancelEventArgs
OnSelectedIndexChanging(cancelEventArgs)
If Not cancelEventArgs.Cancel Then
LastAcceptedSelectedIndex = SelectedIndex
MyBase.OnSelectedIndexChanged(e)
Else
SelectedIndex = LastAcceptedSelectedIndex
End If
End If
End Sub
End Class
素晴らしい知識のトークンTnTinMnに感謝します。あなたに最高です。 – user3613310