JYe*_*ton 1 c# controls visual-studio-2008
我在C#Windows窗体上有一个numericupdown控件,如果它是<10,我有兴趣在其值中添加一个前导零.(用户输入一个时间的分钟值.)
我对C#中的覆盖/继承不是很熟悉,但它看起来好像我可能必须这样做.
看起来像EggheadCafe上的这篇文章有我需要的答案.它是否像创建一个新类一样简单,然后创建一个新类的控件?
public class TestNum : NumericUpDown
{
protected override void ValidateEditText()
{
if (base.UserEdit)
{
base.ValidateEditText();
}
}
protected override void UpdateEditText()
{
Text = Convert.ToInt32(base.Value).ToString("00");
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试这个时,我不知道如何创建利用这个类的新控件.我正在使用Visual Studio 2008.对于Windows窗体来说还是非常新的.谢谢你的建议.
编辑
我能够通过编辑Designer创建的代码来完成这项工作,这样新的控件就不再是原始类的新控件了.所以在添加上面的类后,我做了以下(这些更改位于两个不同的位置,但我只显示重要的行):
更改:
this.numTest = new System.Windows.Forms.NumericUpDown();
private System.Windows.Forms.NumericUpDown numTest;
Run Code Online (Sandbox Code Playgroud)
至:
this.numTest = new SampleForm.TestNum();
private TestNum numTest;
Run Code Online (Sandbox Code Playgroud)
为什么不使用DateTimePicker控件?将其ShowNumericUpDown属性设置为true并将其Format属性设置为Custom并将该CustomFormat属性设置为hh:mm:ss.
也许这对你有用.