C#中只接受数字输入的控件
2009-06-04 08:30:14 来源:WEB开发网核心提示: 使用NumericUpDown控件, 当需要获取简单数字输入时,C#中只接受数字输入的控件(2),在.NET世界中最直接的方法不是去想办法与TextBox搏斗,而应该换个控件来用——NumericUpDown,它包含了许多可以设置的属性,例如显示分隔符逗号的boo
使用NumericUpDown控件。 当需要获取简单数字输入时,在.NET世界中最直接的方法不是去想办法与TextBox搏斗,而应该换个控件来用——NumericUpDown。这个控件不但能接受来自键盘的数字输入,还有一组上下箭头来步进。它包含了许多可以设置的属性,例如显示分隔符逗号的bool ThousandsSeparator、控制最小/最大值的decimal Minimum/decimal Maximum属性等。
下面对这几种解决方法的其中一些稍微讨论一下。
一、继承TextBox并覆盖其CreateParams属性
使用这种方法的NumericTextBox的实现(代码的第1-12行)及用例:
C#代码
public class NumericTextBox : System.Windows.Forms.TextBox
{
private const int ES_NUMBER = 0x2000; // ( defined in WinUser.h )
protected override System.Windows.Forms.CreateParams CreateParams {
get {
System.Windows.Forms.CreateParams cp = base.CreateParams;
cp.Style |= ES_NUMBER;
return cp;
}
}
}
#region use case code sample
sealed class TestForm : System.Windows.Forms.Form
{
private NumericTextBox m_ntxt;
public TestForm() {
InitializeComponent();
}
private void InitializeComponent() {
this.m_ntxt = new NumericTextBox();
this.m_ntxt.Dock = System.Windows.Forms.DockStyle.Fill;
this.ClientSize = new System.Drawing.Size(100, 60);
this.Controls.Add(this.m_ntxt);
this.PerformLayout();
}
[System.STAThread]
static void Main(string[] args) {
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
System.Windows.Forms.Application.Run(new TestForm());
}
}
#endregion
更多精彩
赞助商链接