[WinForms] OnFontChanged
От: Аноним  
Дата: 28.06.11 09:37
Оценка:
Здравствуйте!

Имеются два наследника от UserControl и GroupBox -- MyUserControl и MeGroupBox. Оба являются контейнерами для других компонент/контролов (Помечены атрибутом [Designer(typeof(ParentControlDesigner))]).
Собственно вопрос. Как сделать, так чтобы у внутренних компонент (они могут быть любые) не изменялось свойство Font и другие.
Неужели только полная эмуляция кода Control.OnFontChanged(...) может помочь? Там о-о-очень много чего цепляется... простое перекрытие OnFontChanged — плохо помогает: нужно руками переустанавливать свойства всех дочерних элементов.

Пока используется совершенно идиотский способ:

protected override void OnFontChanged(...)
{
  // запоминаем Font-свойства всех внутренних контролов через словарь:
  for (int i = 0; i < Controls.Count; i++)
  {
     //....
  }
  
  using (new LayoutTransaction(this, this, "Font", false))
  {
    base.OnFontChanged(...);

    if (controls != null)
    {
      // восстанавливаем
      for (int i = 0; i < Controls.Count; i++)
      {
        //....
      }
    }
  }
   

}


Кто сталкивался?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.