2010-03-11 52 views
4

我有一個奇怪的問題,我不知道這是在GroupBox/TabControl中的.Net DataGridView的默認行爲。WinForms - DataGridView從GroupBox繼承樣式

我從頭創建了一個新的WinForm項目,並創建了一個GroupBox(更改了文本樣式)。就像這樣:

alt text http://www.freeimagehosting.net/uploads/65f5f2762d.png

然後,我創建了一個簡單的DataGridView,沒有字體風格可言,像這樣:

alt text http://www.freeimagehosting.net/uploads/09f55f951a.png

然後,在設計模式,我拖着的DataGridView組框,並且這種神奇的內部剛剛發生:

alt text http://www.freeimagehosting.net/uploads/d0334132f0.png

我的問題是,我可以禁用此行爲嗎?如果我在GroupBox之外改變DataGridView樣式,然後將其拖入,導致丟失所有樣式。

只爲備案,此表格根本沒有無代碼

在此先感謝。

+0

我也注意到了這個問題,最特別的是與字體。這似乎是由設計,但我從來沒有一個非默認樣式在拖入時發生變化,所以這看起來很奇怪。 我發現「禁用」它的唯一方法是更改​​從容器默認的屬性,一旦它被拖入。 – 2010-03-11 13:18:23

回答

2

您遇到的情況稱爲Ambient Properties。簡而言之,它是一種機制,如果屬性未明確分配給某個控件,它將從其父項「繼承」某些屬性值。我不知道有一種方法來防止這種行爲,除了將希望的值分配給屬性。

13

嘗試在面板框中放置面板,然後設置面板的字體屬性。這樣DataGridView將繼承面板的屬性。比設置DataGridView的每個字體屬性要容易得多。

+0

+1很簡單的修復。給我留下了很多麻煩。 – Peter 2012-03-17 18:57:55

+1

GENIUS!我不明白爲什麼這不是標記爲答案! – 2013-03-14 17:03:07

+0

不錯!實施解決方案非常簡單。爲我節省了一些時間! – konrad 2015-10-14 18:47:56