三、使用MaskedTextBox
使用例子:
C#代碼
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) {
toolTip.ToolTipTitle = "Invalid Input";
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(maskedTextBox);
}
[STAThread]
static void Main(string[] args) {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new TestForm());
}
}
這段代碼是手寫的;要是用VS2005/VS2008的設計器的話,這個例子的所有功能都能直接在設計器裡指定。
輸入內容(可以看到分隔符都不需要自己寫了,已經寫好在輸入框裡;只要填空就行):
輸入內容不符合Mask屬性指定的模式時: