如何使用ControlDesigner仅允许对接到左和右

时间:2009-12-28 17:02:56

标签: .net winforms user-controls

有没有办法创建一个控制设计器,只允许对接到左侧和右侧?而不是顶部,底部,填充等...谢谢。

1 个答案:

答案 0 :(得分:1)

更改控件设计器需要一个新的控件类,以便您可以应用[Designer]属性。一旦你去那里,便宜的解决方案是在Dock属性的覆盖中否决选择:

using System;
using System.Windows.Forms;

class MyControl : Control {
  public override DockStyle Dock {
    get { return base.Dock; }
    set { 
      if (value != DockStyle.None && value != (DockStyle.Left | DockStyle.Right))
        throw new ArgumentException("Ony None or Left+Right allowed");
      base.Dock = value;
    }
  }
}

如果那太粗糙,你可以写一个UITypeEditor,这样只能选择允许的dock样式,并用[Editor]属性将它应用到重写的Dock属性。