You can use a Banner
For example :
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
If ComboBox1.SelectedIndex = 1 Then
MsgBox("Contents: '" & ComboBox1.Text & "'")
ComboBox1.SelectedIndex = -1
Dim pMessage As IntPtr = Marshal.StringToHGlobalUni("Select Type")
If ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList Then
SendMessage(ComboBox1.Handle, CB_SETCUEBANNER, 0, pMessage)
Else
Dim hEdit As IntPtr = GetWindow(ComboBox1.Handle, GW_CHILD)
SendMessage(hEdit, EM_SETCUEBANNER, 0, pMessage)
ActiveControl = Nothing
End If
End If
End Sub
with :
Public Const ECM_FIRST = &H1500
Public Const EM_SETCUEBANNER = (ECM_FIRST + 1)
Public Const CB_SETCUEBANNER As Integer = &H1703
<DllImport("User32.dll", SetLastError:=True, CharSet:=CharSet.Unicode)>
Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As IntPtr) As Integer
End Function
<DllImport("User32.dll", SetLastError:=True, CharSet:=CharSet.Unicode)>
Public Shared Function GetWindow(hWnd As IntPtr, uCmd As UInteger) As IntPtr
End Function
Public Const GW_HWNDFIRST = 0
Public Const GW_HWNDLAST = 1
Public Const GW_HWNDNEXT = 2
Public Const GW_HWNDPREV = 3
Public Const GW_OWNER = 4
Public Const GW_CHILD = 5