2009-11-10 83 views
1

我正在開發一個winforms應用程序(使用.NET 3.5)透明背景爲一個控制

在一種形式中我有一個控制面板,並且在它的內部DataGridView控件。

我想有一些控制(假設爲簡單 - 一個標籤) 出現在DataGridView的面前,我想這個標籤是透明 - 這意味着:我想看到顯示的數據在gridview後面。

我只想看到標籤中的文本,但不是整個矩形..以及該文本的後面 - 查看我在gridview中的數據。

問題如下:標籤的父級控件不是gridview (因爲它不是容器控件)。標籤的父母是面板控件。

所以,當我將標籤設置爲透明的時候,我實際上獲得了面板透明度,而不是datagridview。

下面是截圖: screenshot 這說明情況(實際控制我想顯示不是一個標籤,而是我已經下載了一個自定義的控制)

任何想法.. ???

回答

1

將面板設置爲透明。它不應該導致面板出現任何問題,因爲您仍然可以使用它自己的形式。

還有一個問題也提醒你。 winforms控件中的透明只是模擬或僞造的,因爲當您創建控件時,它會在控件背後使用表單的圖像,並將其用於背景,而不是真正使其透明。如果背景發生變化或控件在窗體上移動,這可能會導致問題。

+0

好吧..我認爲我實際上需要讓它變得透明。 由於您提出的解決方案無濟於事 - 我現在可以在後臺看到該表單。 我需要看到在我的控件後面的gridview中顯示的數據..它肯定會改變,並且不是靜態的.. – Alex 2009-11-10 14:37:14

5

看看這個CodeProject上的文章: How to Use Transparent Images and Labels in Windows Forms

而且,你總是可以使用GDI(System.Drawing中),只是吸引你直接想要的東西在透明面板?

+0

在Winforms中,如果您想要真正的透明度,GDI +是您最好的選擇。 – Stewbob 2009-11-10 14:50:05

+0

我實現了鏈接文章中描述的解決方案,但是我遇到了一個問題:當我拖動表單時,它在前一個位置捕獲的背景被拖動到新的位置... – 2010-09-01 16:46:40