首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 僅接受數字輸入的控制項 (四) MaskedTextBox

     編輯:關於C語言

使用 MaskedTextBox 控制項

MaskedTextBox 是繼承自 TextBox 的內建控制項,透過 Mask 屬性定義輸入格式,可強制使用者依照特定模式輸入(如數字、日期、電話號碼等),並自動顯示提示字元與分隔符。

完整程式碼範例

using System;
using System.Windows.Forms;

sealed class TestForm : Form
{
    private MaskedTextBox m_maskedTextBox;
    private ToolTip m_toolTip;

    public TestForm()
    {
        InitializeComponent();
    }

    private void InitializeComponent()
    {
        this.m_maskedTextBox = new MaskedTextBox();
        this.m_maskedTextBox.Mask = "999,999.00";
        this.m_maskedTextBox.Dock = DockStyle.Fill;
        this.m_maskedTextBox.MaskInputRejected += m_maskedTextBox_InputRejected;
        this.m_maskedTextBox.KeyDown += m_maskedTextBox_KeyDown;

        this.m_toolTip = new ToolTip();

        this.ClientSize = new Size(100, 60);
        this.Controls.Add(this.m_maskedTextBox);
        this.PerformLayout();
    }

    private void m_maskedTextBox_InputRejected(object sender, MaskInputRejectedEventArgs e)
    {
        m_toolTip.ToolTipTitle = "Invalid Input";
        m_toolTip.Show("Only digits (0-9) are allowed.", m_maskedTextBox, m_maskedTextBox.Location, 5000);
    }

    private void m_maskedTextBox_KeyDown(object sender, KeyEventArgs e)
    {
        m_toolTip.Hide(m_maskedTextBox);
    }

    [STAThread]
    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new TestForm());
    }
}

關鍵屬性與事件

  • Mask:定義輸入遮罩,如 "999,999.00" 表示六位可選數字、逗號分隔、兩位強制小數。
  • MaskInputRejected:輸入不符合遮罩時觸發,可顯示工具提示告知使用者。
  • KeyDown:按鍵按下時隱藏工具提示。

執行畫面

輸入內容(分隔符自動顯示,僅需填入數字):

MaskedTextBox 正常輸入

輸入不符合遮罩模式時:

MaskedTextBox 輸入被拒

優勢

遮罩模式靈活,可處理各種格式化輸入需求;設計師支援完整,屬性可視化設定。若 ES_NUMBER 功能不足,且自行處理 KeyDown 驗證不夠優雅時,MaskedTextBox 是極佳選擇。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved