遮罩文字盒(maskedTextBox)控制項:控制輸入者僅能輸入特定資料
屬性名稱:
AsciiOnly:ture限定只能接受ascII碼 。flase可接受unicode字符.
BeepOnError:設定輸入被拒絕時,是否發出警告聲。
Mask:遮罩格式設定 參考以下 Mask屬性遮罩項目.
Maskcompleted:所有必要項的輸入是否都已經輸入到輸入遮罩中。
maskFull:所有必要項和選擇項的輸入是否都已經輸入到輸入遮罩中。
PasswordChar:主要用來設定代替使用者輸入的元,ex:[*].
TextMaskFormat:用來設定當取得MaskedtextBox控制項text屬性其字串內容值是否含常值和提示字元。
提示字元,如:[_]和常數值,[-],假如原始格式為[___-____-____]若輸入
[0936-666-___]則:
includeLiterals(預設值)[0930-666-___]
ExcludePromptAndLiterals 不包含提示字元和常數值[0930-666-]
IncludePrompt 包含提示字元[0930666___]
IncludePromptAndLiterals 包啟提示字無和常數值[030-666-___]
Mask屬性遮罩項目:
0 必要值 數字,接受0-9之間的數字
9 選擇項 數字或空格
# 選擇項 數字或空格,允許使用 + - 號
L 必要項 英文字母,接受A-Z,a-z
? 選擇項 英文字母,接受A-Z,a-z
. 常值 小數點留位置
: 常值 時間分隔符
/ 常值 日期分隔符
$ 常值 貨幣分隔符
MaskedTextBox常用方法:
AppendText() 將文字附加於目前遮罩文字盒內的文字之中
Clear() 清除文字盒內所有文字
Copy()
Cut()
Paste()
SelectAll()
常用事件:
MaskInputRejected 輸入格式與遮罩格式不符時觸發。
code_ex:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace ISBN_Check_ex
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void btn_checkISBN_Click(object sender, EventArgs e)
{
maskedTextBox1.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
string ISBN = maskedTextBox1.Text;
string CheckCode="";
if (maskedTextBox1.Text.Length != 10)
{
MessageBox.Show("請輸入十碼數字");
maskedTextBox1.Focus();
}
else
{
if (isbnCheck(maskedTextBox1.Text))
{
MessageBox.Show(this,"正確ISBN","遮罩文字盒控制項");
if (maskedTextBox1.Text == "9575279093")
{
MessageBox.Show(this, "這不是傳說中最令人激賞的VB書籍",
"Visual Basic 2005 Express 程式設計經典教本");
}
}
else
{
CheckCode = isbnCheckCode(maskedTextBox1.Text);
MessageBox.Show("錯誤ISBN,正確檢查碼為[" +
CheckCode + "]");
maskedTextBox1.Text =
maskedTextBox1.Text.Substring(0,9) + CheckCode;
}
}
}
//判斷ISBN是否正確
private bool isbnCheck(string newISBN)
{
int sum = 0;
if (newISBN.Length != 10)
{
return false;
}
else
{
for (int i = 1; i <= 10; i++)
{
sum += Convert.ToInt32(newISBN.Substring(i - 1, 1)) * (11 - i);
}
int a = sum / 11;
if (sum == (a * 11))
{
return true;
}
else
{
return false;
}
}
}
//回傳正確檢查碼
private string isbnCheckCode(string newISBN)
{
int sum = 0;
string lastChar;
lastChar = newISBN.Substring(9, 1);
for (int i = 1; i < 10; i++)
{
sum += Convert.ToInt32(newISBN.Substring(i - 1, 1)) * (11 - i);
}
int checksum = (11 - (sum % 11)) % 11;
return checksum.ToString();
}
//輸入格式有誤會觸發此事件-透過此事件取得被拒絕輸入的原因
private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
MessageBox.Show(this,e.RejectionHint.ToString(),"輸入格式有誤");
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}