Я пытаюсь разместить прозрачную дочернюю форму без полей (WinForm) поверх другой дочерней (WinForm) непрозрачной формы, но я хотел бы сохранить возможность прямого нажатия на прозрачную форму. В Интернете есть несколько ответов относительно создания прозрачной формы, на которую можно щелкнуть - , но я хочу сделать такую, на которой можно нажать .
I Вы нашли этот ответ , который показывает, что установка BackColor
и TransparencyKey
моей прозрачной формы для чего-то определенного c, например Color.Red
, обеспечивает желаемое поведение. Однако, исходя из этого ответа , кажется, что такое поведение между некоторыми Colors
и TransparencyKey
может на самом деле быть долговременной ошибкой.
В идеале я не хочу полагаться на ошибку для достижения желаемого эффекта. Какой подход был бы более подходящим для создания интерактивной, прозрачной формы без полей (WinForm)?
Обновление (дополнительный контекст):
Я в основном создаю предварительный просмотр пикселей на экране для извлечения цветовых данных.
- Наложение форм, содержащих захваченные растровые изображения области экрана.
- Другая форма, которая дает визуальный индикатор для предварительно просматриваемой области пикселя (маленький черный прямоугольник на снимке ниже). Эта форма находится над растровыми формами. Я имею эту прозрачную форму (чтобы видеть до растровых изображений ниже), но я все еще хочу иметь возможность щелкнуть по ней для обработки событий.
Без уловки TransparencyKey = BackColor = Color.Red
нажатие внутри маленького черного прямоугольника заставляет фокус переместиться в приведенную ниже растровую форму, которая затем покрывает вверх в форме небольшого ящика и в окне предварительного просмотра, показывающем увеличенное изображение. Целью клика является захват позиции курсора для дополнительной обработки. Я могу обойти это, сразу же вернув фокус обратно на маленькую рамку + формы предварительного просмотра, но это иногда вызывает мерцание.