【问题标题】:In a WinForms custom control, how can a new property change another at design-time?在 WinForms 自定义控件中,新属性如何在设计时更改另一个属性?
【发布时间】:2012-11-20 11:49:32
【问题描述】:

我正在编写一个基于 TextBox 的新自定义控件,用于使用标准表示法仅显示数值,例如12.34e5。我添加了一个十进制类型的新 Value 属性,并将其设置为在 Visual Studio 的“属性”窗口中显示。当用户在设计时更新 Value 属性时,如何让 Text 属性同时更新?我看过有关 DesignMode 属性的帖子 - 这是正确的路径吗?如果是,如何?

我知道NumericUpDown提供数字显示,但不适合项目需求。

【问题讨论】:

  • 您是否尝试过在您的Value 属性的setter 中设置Text 属性?

标签: c# winforms textbox custom-controls


【解决方案1】:

您需要将底层TextBoxText 属性设置为您想要的值。

如果您从 UserControl 类派生,您可以通过设置您在 Value setter 方法中使用的 TextBox 的 Text 属性来做到这一点,如下所示:

public decimal Value
{
    get{ return _value; }
    set
    {
        _value = value;
        textBox1.Text = _value.ToString();
    }
}

如果您直接从 TextBox 派生,只需设置它自己的 Text 属性。

public decimal Value
{
    get{ return _value; }
    set
    {
        _value = value;
        this.Text = _value.ToString();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    相关资源
    最近更新 更多