WEB开发网
开发学院软件开发C语言 C#中只接受数字输入的控件 阅读

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

上一页  1 2 3 4 5  下一页

Tags:接受 数字 输入

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接