【发布时间】:2015-06-18 02:48:51
【问题描述】:
我正在为特定作业设计一系列ToolStrip 控件,例如字体工具条。我需要做的是阻止用户和开发人员在我的 ToolStrips 中添加或删除控件。
我们将不胜感激地接受任何帮助 丹尼
【问题讨论】:
标签: c# .net winforms windows-forms-designer toolstrip
我正在为特定作业设计一系列ToolStrip 控件,例如字体工具条。我需要做的是阻止用户和开发人员在我的 ToolStrips 中添加或删除控件。
我们将不胜感激地接受任何帮助 丹尼
【问题讨论】:
标签: c# .net winforms windows-forms-designer toolstrip
要创建这样的自定义ToolStrip,您应该执行以下步骤:
ToolStrip继承。ToolStrip的默认设计器。Items 属性。以下是有关步骤的详细说明:
创建一个类并从ToolStrip继承。
通过这种方式,您可以在设计器中将一些项目添加到您的自定义工具条中。为此,在创建类后以设计模式打开它(Visual Studio 可能需要一些时间才能检测到它可以在设计器中打开文件)。然后转到属性窗口并使用Items 属性添加一些项目。您还可以从属性窗口上方的下拉列表和事件选项卡中选择项目,处理Click 事件并添加一些逻辑。
注意:添加项目后,进入代码视图,调用InitializeComponent();是构造函数。
禁用ToolStrip的默认设计器
您应该禁用 ToolStrip 的默认设计器以防止在设计时更改项目,因此用户不能使用设计器 versb 或设计表面来更改项目。为此,只需使用[Designer(typeof(ControlDesigner))] 属性装饰您的自定义组件类就足够了。
[Designer(typeof(ControlDesigner))]
public class MyToolStrip : ToolStrip
{
//...
}
在属性网格中隐藏Items 属性。
您应该在属性网格中也隐藏items 属性,以防止通过属性网格更改项目。为此,覆盖Items 属性并用[Browsable(false)] 装饰就足够了。
[Browsable(false)]
public override ToolStripItemCollection Items
{
get
{
return base.Items;
}
}
【讨论】: