Puedes usar el método IndexFromPoint para averiguar si donde has pulsado hay un elemento y en caso negativo, deseleccionar todos los elementos utilizando el método ClearSelected. Luego le añades el evento MouseClick al ListBox y desde ahí obtienes donde ha pulsado con el ratón y actuas en consecuencia
Código VB:
Ver originalPrivate Sub ListBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseClick
Dim index As Integer
ListBox list = CType(sender,ListBox);
If (e.Button = Windows.Forms.MouseButtons.Left) Then
index = list.IndexFromPoint (e.Location)
If (index = ListBox.NoMatches) Then
list.ClearSelected();
End If
End If
End Sub