2010-03-11 2 views
4

У меня есть странная проблема, и я не знаю, является ли это поведением .NET DataGridView по умолчанию в GroupBox/TabControl.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 внутри GroupBox, и такого рода магии просто случилось:

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

Мой вопрос: могу ли я отключить это поведение? Причина, если я использую стиль DataGridView вне GroupBox, а затем перетащить его, потерял весь стиль.

Только для справки, эта форма имеет NO CODE.

Заранее спасибо.

+0

Я также заметил эту проблему, в частности, со шрифтами. Кажется, это по дизайну, но у меня никогда не было изменения стиля по умолчанию при перетаскивании, так что это кажется странным. Единственный способ, которым я нашел «отключить», это изменить свойство, которое было дефолтовано из контейнера после его перетаскивания. –

ответ

2

То, что вы испытываете, называется Ambient Properties. Короче говоря, это механизм, в котором элемент управления будет «наследовать» некоторые значения свойств из своего родителя, если свойствам явно не присвоены. Я не знаю, как предотвратить поведение, отличное от назначения желаемых значений свойствам.

13

Попробуйте поместить панель в групповой блок, а затем задайте свойство шрифта панели. Таким образом DataGridView наследует свойства панели. Намного проще, чем устанавливать каждое свойство шрифта DataGridView.

+0

+1 Хорошее простое исправление. Спасло меня много неприятностей. – Peter

+1

GENIUS! Я не понимаю, почему это не помечено как ответ! –

+0

Ницца! Это отличное и простое решение. Сэкономил мне время! – konrad