Как сделать кликабельную, прозрачную форму без полей? - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь разместить прозрачную дочернюю форму без полей (WinForm) поверх другой дочерней (WinForm) непрозрачной формы, но я хотел бы сохранить возможность прямого нажатия на прозрачную форму. В Интернете есть несколько ответов относительно создания прозрачной формы, на которую можно щелкнуть - , но я хочу сделать такую, на которой можно нажать .

I Вы нашли этот ответ , который показывает, что установка BackColor и TransparencyKey моей прозрачной формы для чего-то определенного c, например Color.Red, обеспечивает желаемое поведение. Однако, исходя из этого ответа , кажется, что такое поведение между некоторыми Colors и TransparencyKey может на самом деле быть долговременной ошибкой.

В идеале я не хочу полагаться на ошибку для достижения желаемого эффекта. Какой подход был бы более подходящим для создания интерактивной, прозрачной формы без полей (WinForm)?


Обновление (дополнительный контекст):

Я в основном создаю предварительный просмотр пикселей на экране для извлечения цветовых данных.

  • Наложение форм, содержащих захваченные растровые изображения области экрана.
  • Другая форма, которая дает визуальный индикатор для предварительно просматриваемой области пикселя (маленький черный прямоугольник на снимке ниже). Эта форма находится над растровыми формами. Я имею эту прозрачную форму (чтобы видеть до растровых изображений ниже), но я все еще хочу иметь возможность щелкнуть по ней для обработки событий.

snapshot

Без уловки TransparencyKey = BackColor = Color.Red нажатие внутри маленького черного прямоугольника заставляет фокус переместиться в приведенную ниже растровую форму, которая затем покрывает вверх в форме небольшого ящика и в окне предварительного просмотра, показывающем увеличенное изображение. Целью клика является захват позиции курсора для дополнительной обработки. Я могу обойти это, сразу же вернув фокус обратно на маленькую рамку + формы предварительного просмотра, но это иногда вызывает мерцание.

...