我基本上创建了2个子控件,我想将它们的宽度设置为等于父复合控件的宽度。问题是当我使用parent.Size属性执行此操作时,它不起作用。它只在你添加控件时才有效。
我是否应该覆盖不是属性的事件?我认为房产变更将通过调整大小发出信号,对吗?
编辑:
这是代码,属性不起作用,但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)
您是否为子控件设置了Dock或Anchor等属性,以防止它们被调整为任意尺寸?我一直这样做,只是设置一个子控件的大小,宽度或高度属性一直对我有用。如果我猜错了,那将有助于我们查看您的代码。
编辑:看到你的评论后,我认为应该使用Dock和/或Anchor。这样,您可以先放置子控件,然后在调整父级调整大小时,子控件将会跟进,而不需要额外的工作。