我基本上创建了2个子控件,我想将它们的宽度设置为等于父组合控件的宽度。问题是当我使用parent.Size属性执行此操作时,它不起作用。它仅在添加控件时才起作用。如何更改winforms中复合控件中子控件的大小?
我应该重写一个事件而不是属性?我认为财产变动将以调整大小来表示,对吧?
编辑:
下面是代码,属性不起作用,但是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;
}
}
目前尚不清楚你现在在做什么,以及它如何工作。请显示一些代码。 – 2009-10-05 23:00:06
对不起,你是对的。增加了一些代码。 – 2009-10-05 23:06:11