【问题标题】:How to set default values for the properties of a derived control?如何为派生控件的属性设置默认值?
【发布时间】:2012-02-23 06:40:42
【问题描述】:

我从 ToolStripComboBox 派生,以便创建一个封装百分比选择下拉列表的工具。目标是在派生控件中进行所有验证和字符串解析。当所选择的百分比已更改时,父级只需接收一个事件,并且它可以访问公共整数以获取和设置百分比。

我遇到的问题是,在我放置派生控件的父控件的设计器文件中,它不断使用 ComboBox.Items.AddRange 方法添加一组完整的字符串。在我的派生控件的构造函数中,我有以下内容:

foreach (int i in percentages)
{
    ComboBox.Items.Add(String.Format("{0}%", i));
}

随着时间的推移,这些值会在设计器文件中累积很多很多倍。我不知道如何隐藏 Items 属性,因为它不是虚拟的。我想抑制我的设计器文件泛滥。

我的设计器文件示例:

this.zoom_cbo.Items.AddRange(new object[] {
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%",
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%",
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%",
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%",
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%",
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%",
"10%",
"25%",
"50%",
"75%",
"100%",
"150%",
"200%",
"300%",
"400%",
"600%",
"800%",
"1600%"});

【问题讨论】:

    标签: c# winforms inheritance controls default-value


    【解决方案1】:

    也许你应该只在你不处于设计模式时才进行添加,例如:

    if (this.DesignMode)
    {
      // design time only stuff
    }
    else
    {
      // runtime only stuff.
      foreach (int i in percentages)
      {
        ComboBox.Items.Add(String.Format("{0}%", i));
      }
    }
    

    【讨论】:

      【解决方案2】:

      由于它是用户刚刚从中选择的派生列表,请尝试将其添加到派生组合框中以防止项目序列化:

      [Browsable(false)]
      [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
      public new ObjectCollection Items
      {
        get { return ((ComboBox)this).Items; }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-12-21
        • 2016-07-04
        • 1970-01-01
        • 2010-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多