我正在设计一系列针对特定作业的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;
    }
}

10-07 15:19