2011-07-20 100 views
2

我想根据项目调整的自定义控制它的内容 这对我不工作:自定义控制调整大小C#

public CustomControl() 
{ 
    InitializeComponent(); 
    if (ErrorLimits == false && Range == false) 
    { 
     this.Size = new Size(100, 100); 
     this.Invalidate(); 
    } 
    else 
    { 
     this.Size = new Size(250,250); 
     this.Invalidate(); 
    } 

} 

它变着法子,我怎样才能实现呢? 谢谢!

+0

你确定你没有设置Dock/Anchor属性吗? –

+0

我想改变自定义控件中的自定义控件automaticaly的大小,而不是以另一种形式改变我的自定义控件的外部尺寸 –

+0

我猜Kshitij的意思是对接/锚定将覆盖通过将值分配给Size属性设置的值。 –

回答

3

包含窗体将实例化CustomControl,然后在窗体的InitializeComponent函数中设置其属性。在表单设计器中设置的属性值在构造函数到CustomControl已完成后应用(如果您考虑它,则必须是)。

由于您在控件的构造函数中设置自定义尺寸,因此在显示窗体之前可能会立即被设计器值忽略。

设置尺寸的更好的地方是UserControl.Load事件,该事件发生在设计器属性设置后。

更好的选择是正确支持auto sizing