【问题标题】:Custom UserControl - Design-Time support for control repainting自定义 UserControl - 控件重绘的设计时支持
【发布时间】:2015-11-07 08:45:55
【问题描述】:

我创建了我的自定义UserControl,并为其添加了一些自定义属性。例如:

[Description("Example Description"),Category("CustomSettings"),DefaultValue("Transmedicom")]
public string DatabaseAddress
{
    get; set;
}

一切正常。我可以在代码和design-time 中更改custom property

我现在正在寻找(并且找不到任何东西)是:当我的自定义属性在设计时更改时,我如何在设计时重新绘制(重新创建)我的 UserControl

假设DatabaseName 何时更改为localhost UserControl 将在我的用户控件上添加并显示一些标签。在Design-Time工作很重要。

【问题讨论】:

    标签: c# .net winforms custom-controls visual-studio-2015


    【解决方案1】:

    那里没什么特别的。您只需在属性设置器中将文本设置为Label。这应该会更新 UI。

    private string databaseAddress;
    [Description("Example Description"), Category("CustomSettings"), DefaultValue("Transmedicom")]
    public string DatabaseAddress
    {
        get { return databaseAddress; }
        set 
        { 
            databaseAddress = value;
            yourLabel.Text = value;//Set value to Label or whatever
        }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个

      private string _databaseAddress = "localHost";
      [Description("Example Description"), Category("CustomSettings"), DefaultValue("Transmedicom")]
      public string DatabaseAddress
      {
          get
          {
              return _databaseAddress;
          } 
          set 
          {
              if(!string.IsNullOrEmpty(value))
              {
                  _databaseAddress = value;
                  lblAddress.Text = value;
                  lblAddress.Invalidate();
              }
          }
      }
      

      【讨论】:

        【解决方案3】:

        前面的两个答案都是正确的。
        我只想补充一点,用户控件甚至可以在设计期间使用Layout 事件对调整大小做出反应。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-03-04
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多