【问题标题】:Restrict adding controls to ToolStrip限制向 ToolStrip 添加控件
【发布时间】:2015-06-18 02:48:51
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net winforms windows-forms-designer toolstrip


    【解决方案1】:

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

    1. 创建一个类并从ToolStrip继承。
    2. 禁用ToolStrip的默认设计器。
    3. 在属性网格中隐藏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;
          }
      }
      

    【讨论】:

      猜你喜欢
      • 2013-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-23
      • 2012-05-01
      • 1970-01-01
      • 2014-04-22
      • 1970-01-01
      相关资源
      最近更新 更多