protected override void UpdateEditText()
{
this.Text = "0x" + ((int) Value).ToString("X2");
}
这个做得相当不错。控件现在以以下格式显示值:
0x3F
这正是我想要的。
但有一件事情让我困扰:每次赋值Text属性时,都会抛出一个System.FormatException。这似乎并不影响控件的功能,但我觉得这很丑陋。
以下是调用栈的顶部内容:
MyAssembly.dll!HexNumericUpDown.UpdateEditText() 第31行 C# System.Windows.Forms.dll!System.Windows.Forms.NumericUpDown.ValidateEditText() 未知 System.Windows.Forms.dll!System.Windows.Forms.UpDownBase.Text.set(string value) 未知
我可以忽略这个异常吗?还是有一种干净的方法可以摆脱它?