C# 我可以在NumericUpDown控件中隐藏值吗?
假设我们在控件的值字段中显示了C# 我可以在NumericUpDown控件中隐藏值吗?,c#,winforms,numericupdown,C#,Winforms,Numericupdown,假设我们在控件的值字段中显示了0,我希望如果值是0,则显示string.Empty(我知道值的类型是decimal,不能插入字符串而不是小数,但仍然…可能存在一些格式?).对更改格式的支持似乎非常有限 我自己也没试过。但是您可以创建一个子类并重写updateditext方法来支持自定义格式。大概是这样的: protected override void UpdateEditText() { this.Text = Value.ToString(); // Insert your forma
0
,我希望如果值是0
,则显示string.Empty
(我知道值的类型是decimal,不能插入字符串而不是小数,但仍然…可能存在一些格式?).对更改格式的支持似乎非常有限
我自己也没试过。但是您可以创建一个子类并重写updateditext
方法来支持自定义格式。大概是这样的:
protected override void UpdateEditText()
{
this.Text = Value.ToString(); // Insert your formatting here
}
注意:这取决于NumericUpDown
的当前实现
您需要做的是创建一个从NumericUpDown
继承的新控件,以便:
public partial class SpecialNumericUpDown : NumericUpDown
{
public SpecialNumericUpDown()
{
InitializeComponent();
}
protected override void UpdateEditText()
{
if (this.Value != 0)
{
base.UpdateEditText();
}
else
{
base.Controls[1].Text = "";
}
}
}
如果您只想对用户隐藏值,可以将
ForeColor
设置为与BackColor
相同,以便NumericUpDown
中的值对用户不可见
public partial class SpecialNumericUpDown : NumericUpDown
{
public SpecialNumericUpDown()
{
InitializeComponent();
}
protected override void UpdateEditText()
{
if (this.Value != 0)
{
base.UpdateEditText();
}
else
{
base.Controls[1].Text = "";
}
}
}