Получение кликов, чтобы «провалиться» панель - PullRequest
3 голосов
/ 22 мая 2011

У меня есть панель в форме, которая находится под контролем. Я собираюсь использовать эту панель для рисования градиента от черного к прозрачному, чтобы имитировать тень, отбрасываемую из элемента управления. Однако под панелью будут другие элементы управления, и панель будет ловить щелчки, предназначенные для панелей под ней.

Как получить клики, чтобы "провалиться" на панель и перейти на панель под ней? Я бы предпочел не отменять весь процесс сообщения. Я также открыт для других предложений о том, как сделать тени.

Ответы [ 2 ]

1 голос
/ 22 мая 2011

В WPF вы можете установить для IsHitTestVisible значение false, чтобы выполнить то, что вы хотите, но с winforms у каждого элемента управления есть свое окно, поэтому вы должны сами создавать события.

1 голос
/ 22 мая 2011

К сожалению, клики не выпадают таким образом (то есть, если вы настроили обработчик щелчков в форме и поместили на него кнопку, при нажатии на кнопку срабатывает только обработчик щелчков). То, что вы можете сделать, это каскадировать события кликов, как это:

topPanel_OnClick() { bottomPanel_OnClick(topPanel, EventArgs.Empty); }

Очевидно, что добавляет шум, но это намного лучше, чем поведение «падения» для кликов, которые могут вызвать серию событий.

...