2009-10-05 2 views
0

Я в основном создал 2 дочерних элемента управления и хочу, чтобы их ширина была равна ширине основного составного элемента управления. Проблема в том, что когда я делаю это с использованием свойства parent.Size, это не работает. Он работает только один раз, когда вы добавляете элемент управления.Как изменить размер дочерних элементов управления в составном элементе управления в winforms?

Я должен переопределить мероприятие, не являющееся собственностью? Я думал, что изменение свойств будет сигнализировано с изменением размера, не так ли?

EDIT:

Вот код, свойство не работает, но событие OnResize работал.

Q2: не должен OnResize EventArgs e дать мне новый размер?

public partial class CollapsableCtrl : UserControl 
{ 
    public CollapsableCtrl () 
    { 
     this.ChildCtrl = new CustomCtrl (); 
     this.Size = new Size (181, 82); 
     this.Controls.Add (this.ChildCtrl); 
    } 

    CustomCtrl ChildCtrl { get; set; } 

    public new Size Size 
    { 
     get { return base.Size; } 
     set 
     { 
      this.ChildCtrl.Size = value; 
      Invalidate (); 
     } 
    } 

    protected override void OnResize (EventArgs e) 
    { 
     base.OnResize (e); 
     this.ChildCtrl.Size = this.Size; 
    } 
} 
+0

Непонятно, что вы сейчас делаете и как это не работает. Пожалуйста, покажите код. –

+0

Извините, вы правы. Добавлен код. –

ответ

0

У вас есть свойства, такие как Dock или Anchor для ваших дочерних элементов управления, таким образом, чтобы они не изменялись до произвольных размеров? Я делаю это все время, и просто настройка свойства размера, ширины или высоты дочернего элемента всегда работала для меня. Если мое предположение ошибочно, это поможет нам увидеть ваш код.

EDIT: После просмотра вашего комментария, я думаю, что вы должны использовать Dock and/or Anchor . Таким образом, вы можете сначала вынести дочерние элементы управления, а затем, когда размер родителя будет изменен, дочерние элементы управления последуют этому примеру без дополнительной работы с вашей стороны.

+0

Нет. Я не использую Dock и Anchor, но так как поведение, которое я хочу, похоже, следует ли использовать их? Я не знал, что могу в составном контроле. Я довольно новичок в сложных элементах управления. –

Смежные вопросы

 Смежные вопросы