WinForms - DataGridView从GroupBox继承样式

问题描述:

我有一个奇怪的问题,我不知道这是在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

您遇到的情况称为Ambient Properties。简而言之,它是一种机制,如果属性未明确分配给某个控件,它将从其父项“继承”某些属性值。我不知道有一种方法来防止这种行为,除了将希望的值分配给属性。

尝试在面板框中放置面板,然后设置面板的字体属性。这样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