限制向 ToolStrip 添加控件

Restrict adding controls to ToolStrip

我正在为特定作业设计一系列 ToolStrip 控件,例如 Font ToolStrip。我需要做的是阻止用户和开发人员在我的 ToolStrip 中添加或删除控件。

我们将不胜感激地接受任何帮助 丹尼

要创建这样的自定义 ToolStrip 您应该执行以下步骤:

  1. 创建一个 class 并继承自 ToolStrip
  2. 禁用 ToolStrip 的默认设计器。
  3. 在 属性 网格中隐藏 Items 属性。

这里是关于步骤的详细说明:

  • 创建一个 class 并继承自 ToolStrip

    这样您就可以在设计器中将一些项目添加到您的自定义工具条中。为此,在创建 class 后以设计模式打开它(可能需要一些时间 visual studio 检测它是否可以在设计器中打开文件)。然后转到属性 window 并使用 Items 属性 添加一些项目。您还可以 select 属性 window 上方下拉列表中的项目,并在事件选项卡中处理 Click 事件并添加一些逻辑。

    注意:添加项后,进入代码视图,调用InitializeComponent();构造函数。

  • 禁用 ToolStrip

    的默认设计器

    您应该禁用 ToolStrip 的默认设计器以防止在设计时更改项目,因此用户不能使用设计器 versb 或设计图面来更改项目。为此,用 [Designer(typeof(ControlDesigner))] 属性装饰您的自定义组件 class 就足够了。

    [Designer(typeof(ControlDesigner))]
    public class MyToolStrip : ToolStrip
    {
        //...
    }
    
  • 在 属性 网格中隐藏 Items 属性。

    您应该在 属性 网格中隐藏 items 属性 以防止通过 属性 网格更改项目。为此,覆盖 Items 属性 并用 [Browsable(false)].

    装饰它就足够了
    [Browsable(false)]
    public override ToolStripItemCollection Items
    {
        get
        {
            return base.Items;
        }
    }