This worked for me just fine. I took your code, and I created a new application with the following:
Public Class Form1
Dim WithEvents x As New xCombo
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Controls.Add(x)
For i As Integer = 1 To 5
x.Items.Add(i)
Next
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged, x.SelectedIndexChanged
MessageBox.Show(DirectCast(sender, ComboBox).SelectedItem)
End Sub
End Class
Public Class xCombo
Inherits System.Windows.Forms.ComboBox
Public Sub New()
End Sub
End Class
I compiled that. I then created a new project, selected Tools/Choose Toolbox Items, browsed to my new EXE and selected it. A new xCombo control appeared in my toolbox, so I added one to my form. I also added a regular combobox. Here's the result in the designer code:
Private Sub InitializeComponent()
Me.XCombo1 = New WindowsApplication1.xCombo()
Me.ComboBox1 = New System.Windows.Forms.ComboBox()
Me.SuspendLayout()
Me.XCombo1.FormattingEnabled = True
Me.XCombo1.Location = New System.Drawing.Point(67, 90)
Me.XCombo1.Name = "XCombo1"
Me.XCombo1.Size = New System.Drawing.Size(121, 21)
Me.XCombo1.TabIndex = 0
Me.ComboBox1.FormattingEnabled = True
Me.ComboBox1.Location = New System.Drawing.Point(67, 132)
Me.ComboBox1.Name = "ComboBox1"
Me.ComboBox1.Size = New System.Drawing.Size(121, 21)
Me.ComboBox1.TabIndex = 1
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(284, 262)
Me.Controls.Add(Me.ComboBox1)
Me.Controls.Add(Me.XCombo1)
Me.Name = "Form1"
Me.Text = "Form1"
Me.ResumeLayout(False)
End Sub
Friend WithEvents XCombo1 As WindowsApplication1.xCombo
Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
Looks OK to me.