Похоже, вы пытаетесь частично дублировать поведение, которое вы видите на диаграмме в Excel. Вы можете щелкнуть любой объект на диаграмме, и он будет выделен (имеет фокус), но если вы щелкнете за пределами области диаграммы, но все еще внутри объекта диаграммы, ничего не будет выбрано.
Это было бы очень знакомым поведением для людей, привыкших к диаграммам в Excel.
По сути, вам нужен элемент управления, который обычно принимает фокус. Я боролся с этой же проблемой в прошлом. Лучшее решение, которое я придумала (и под «лучшим» я не имею в виду, что оно на самом деле хорошо), - это создать пустое текстовое поле и поместить его за свой UserControl. Тогда ваш код для нажатия на элемент управления пользователя выглядит так:
Protected Overrides Sub OnMouseClick _
(ByVal e As System.Windows.Forms.MouseEventArgs)
MyBase.OnMouseClick(e)
myFakeTextBox.Focus()
End Sub
Пользователь никогда не видит, чтобы это текстовое поле получало фокус. Все, что они видят, - это то, что теперь ничего не выбрано в форме, и они могут свободно заниматься своими делами.
Этот метод работает просто отлично, но с точки зрения обслуживания это немного головная боль, так как вы должны помнить, что фальшивое текстовое поле есть и для чего оно хорошо.