How can I handle ComboBox selected index changing?

前端 未结 10 1269
花落未央
花落未央 2020-12-21 06:10

I have a ComboBox that have a list of manufacturers. When a user selects a manufacturer, a grid below is populated with data for the chosen manufacturer. That data can be mo

10条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-21 06:39

    Great job nightcoder. Your code Works perfectly.

    Thanks!

    For developers who write in VB.NET here you have translation:

    Imports System.ComponentModel
    
    Public Class ComboBoxEx
      Inherits ComboBox
    
      Private pLastAcceptedSelectedIndex As Integer
    
      Public Event SelectedIndexChanging As CancelEventHandler
    
      Public Property LastAcceptedSelectedIndex() As Integer
        Get
          Return pLastAcceptedSelectedIndex
        End Get
        Set(ByVal value As Integer)
          pLastAcceptedSelectedIndex = value
        End Set
      End Property
    
      Public Sub New()
        LastAcceptedSelectedIndex = -1
      End Sub
    
      Protected Sub OnSelectedIndexChanging(ByVal e As CancelEventArgs)
        RaiseEvent SelectedIndexChanging(Me, e)
      End Sub
    
      Protected Overrides Sub OnSelectedIndexChanged(ByVal e As System.EventArgs)
        If LastAcceptedSelectedIndex <> SelectedIndex Then
          Dim cancelEventArgs As CancelEventArgs
    
          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
    

提交回复
热议问题