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
更多精彩
赞助商链接