我正在设计一系列针对特定作业的ToolStrip
控件,例如Font ToolStrip。我需要做的是阻止用户和开发人员从我的ToolStrip中添加或删除控件。
任何帮助将不胜感激
丹尼
最佳答案
要创建这样的自定义ToolStrip
,您应该执行以下步骤:
创建一个类并从ToolStrip
继承。
禁用ToolStrip
的默认设计器。
在属性网格中隐藏Items
属性。
这是有关步骤的详细说明:
创建一个类并从ToolStrip
继承。
这样,您可以在设计器的自定义工具栏中添加一些项目。为此,在创建您的类之后,以设计模式打开它(Visual Studio可能要花一些时间才能检测到它可以在设计器中打开文件)。然后转到属性窗口,并使用Items
属性添加一些项目。您也可以从属性窗口上方的下拉菜单中选择项目,并在事件选项卡中处理Click
事件并添加一些逻辑。
注意:添加项目后,转到代码视图并调用InitializeComponent();
是构造函数。
禁用ToolStrip
的默认设计器
您应该禁用ToolStrip
的默认设计器,以防止在设计时更改项目,因此用户不能使用Designer versb或设计图面来更改项目。为此,只需用[Designer(typeof(ControlDesigner))]
属性装饰您的自定义组件类即可。
[Designer(typeof(ControlDesigner))]
public class MyToolStrip : ToolStrip
{
//...
}
在属性网格中隐藏
Items
属性。您应该在属性网格中隐藏
items
属性aslo,以防止通过属性网格更改项目。为此,只需覆盖Items
属性并用[Browsable(false)]
装饰它就足够了。[Browsable(false)]
public override ToolStripItemCollection Items
{
get
{
return base.Items;
}
}