2009-11-10 2 views
1

Я занимаюсь разработкой приложения WinForms (с использованием .NET 3.5)Прозрачный фон для управления

В форме у меня есть панель управления и управления DataGridView внутри него.

Я хочу иметь некоторый контроль (скажем, для простоты - это этикетка) появляться перед DataGridView, и я хочу эту метку, чтобы быть прозрачным - что означает: я хочу видеть данные, отображаемые в gridview позади.

Я просто хочу видеть текст, который находится на ярлыке, но не весь прямоугольник .. и за этим текстом - видеть данные, которые у меня есть в gridview.

Проблема заключается в следующем: родительский элемент управления меткой не является gridview (поскольку это не управление контейнером). Родительом метки является панель управления.

Поэтому, когда я устанавливаю ярлык прозрачным, я фактически получаю прозрачность для панели, а не для datagridview.

Вот скриншот: screenshot Это показывает, что ситуация (фактический контроль я хочу, чтобы отобразить это не ярлык, а пользовательский элемент управления я скачал)

Любые идеи .. ???

ответ

1

Установите панель, чтобы она была прозрачной. Это не должно вызывать никаких проблем с панелью, поскольку у вас по-прежнему будет сама форма.

Есть еще одна проблема, которая должна вас предупредить. Прозрачность в элементах управления winforms только моделируется или подделывается, поскольку при создании элемента управления он принимает изображение формы за элементом управления и использует это для фона, а не делает его прозрачным. Это может вызвать проблемы, если изменения фона или элементы управления перемещаются по форме.

+0

хорошо .. я думаю, что на самом деле мне нужно сделать trully сделать его прозрачным. Поскольку предлагаемое вами решение не помогает - теперь я вижу форму в фоновом режиме. Мне нужно увидеть данные, отображаемые в gridview за моим управлением .. и он обязательно изменяется и не является статическим. – Alex

5

Проверить эту статью CodeProject: How to Use Transparent Images and Labels in Windows Forms

Кроме того, вы всегда можете использовать GDI (System.Drawing) и просто рисовать то, что вы хотите прямо на прозрачную панель?

+0

В Winforms, если вы хотите истинную прозрачность, GDI + - ваш лучший выбор. – Stewbob

+0

Я реализовал решение, описанное в связанном сообщении, но у меня возникла проблема: при перетаскивании моей формы фон, который он захватил в предыдущей позиции, перетаскивается в новую позицию ... –

Смежные вопросы