Option Explicit On Option Strict On Imports System Imports System.Windows.Forms Imports Microsoft.VisualBasic Public Class SampleForm Inherits Form Private WithEvents comboBox1 As SampleComboBox Private listBox1 As ListBox Private Sub comboBox1_DropDown(ByVal sender As Object, ByVal e As EventArgs) Handles comboBox1.DropDown listBox1.Items.Insert(0, Now.ToString("hh:mm:ss.fff") & " ダウン") End Sub Private Sub comboBox1_DropDownClosed(ByVal sender As Object, ByVal e As EventArgs) Handles comboBox1.DropDownClosed listBox1.Items.Insert(0, Now.ToString("hh:mm:ss.fff") & " アップ") End Sub Public Sub New() comboBox1 = New SampleComboBox() listBox1 = New ListBox() comboBox1.Items.AddRange("aaa,bbb,ccc,ddd".Split(","c)) listBox1.Left = 140 listBox1.Height = 180 Controls.Add(comboBox1) Controls.Add(listBox1) End Sub Public Shared Sub Main() Application.Run(New SampleForm()) End Sub End Class Public Class SampleComboBox Inherits ComboBox Public Event DropDownClosed(ByVal sender As Object, ByVal e As EventArgs) Protected Overrides Sub WndProc(ByRef m As Message) Const OCM_COMMAND As Integer = &H2111 Const CBN_CLOSEUP As Integer = 8 If m.Msg = OCM_COMMAND Then If HIWORD(m.WParam) = CBN_CLOSEUP Then RaiseEvent DropDownClosed(Me, EventArgs.Empty) End If End If MyBase.WndProc(m) End Sub Public Shared Function HIWORD(ByVal value As IntPtr) As Integer Return HIWORD(value.ToInt32()) End Function Public Shared Function HIWORD(ByVal value As Integer) As Integer Return (value And &HFFFF0000%) \ &H10000% End Function End Class