我想在自定义控件中实现一个AutoSize属性(而不是用户控件),其行为与在设计模式下实现AutoSize(ala CheckBox)的其他标准.NET WinForms控件一样。如何实现自定义控件的AutoSize属性?
我有属性设置,但它是控制在设计模式下的行为方式使我感到困惑。 它仍然可以调整大小,这是没有意义的,因为视觉大小不会反映在我已经实现的AutoSize和Size属性中。
当AutoSize为true时,标准.NET控件不允许在设计模式下调整大小(甚至不显示调整大小手柄)。我希望我的控制行为以相同的方式进行。
编辑:我有工作使用SetBoundsCore()重写,但它不会在视觉上限制调整大小时自动调整大小设置为true,它只是有同样的效果;功能相同,但感觉不自然。
protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified)
{
if (!this.auto_size)
this.size = new Size(width, height);
base.SetBoundsCore(x, y, this.size.Width, this.size.Height, specified);
}
这样做的标准方式的任何想法?
你使用的是什么UI库?的WinForms? WPF? ASP.NET?还有别的吗? – svick 2012-03-25 00:55:30
Winforms,编辑在=] – mina 2012-03-25 01:11:31
你尝试添加sizechanged事件,并把你的调整大小逻辑? – Oztaco 2012-03-25 04:14:04