タイトル
 メニューにないコーナーはTopからいけます
TOP.NETWindowsForm → This Page

.NET プログラミングのコーナー
クラス関連 > コントロール関連 > テキストボックスの入力制限


概要


テキストボックスの入力制限サンプルです。


サンプルイメージ


サンプル画像


サンプルソース(一部抜粋)

C#

private void Form1_Load(object sender, System.EventArgs e)
{
	// 数字専用テキストボックスはIMEをOFFにする
	TextBox2.ImeMode = ImeMode.Disable;
	// ABCDE無効テキストボックスのIMEをOFFにする
	TextBox3.ImeMode = ImeMode.Disable;
}

// 必須入力テキストボックス
private void TextBox1_Validating(object sender, System.ComponentModel.CancelEventArgs e)
{
	// (注意)TextBox1.CausesValidation = True でないと、このイベントは発生しません
	if (TextBox1.Text == "")
	{
		MessageBox.Show("このテキストは必須入力です!");
		e.Cancel = true;
	}
}

// 数字専用テキストボックス
private void TextBox2_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
	if ((e.KeyChar < '0') || (e.KeyChar > '9'))
	{
		// 数字以外が入力された場合
		if (e.KeyChar != '\b')
		{
			// なおかつBackSpaceでもない場合は入力を無効にする
			e.Handled = true;
		}
	}
}

// ABCDE無効テキストボックス
private void TextBox3_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
	char[] c = new char[]{'A','B','C','D','E','a','b','c','d', 'e'};
	int i;

	for (i = 0; i <= c.Length - 1; i++)
	{
		if (e.KeyChar == c[i])
		{
			// "ABCDE"のいずれかを含む場合は無効にする
			e.Handled = true;
			break;
		}
	}
}


--------------------------------------------------------------------------------
VB.NET

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    '数字専用テキストボックスはIMEをOFFにする
    TextBox2.ImeMode = ImeMode.Disable
    'ABCDE無効テキストボックスのIMEをOFFにする
    TextBox3.ImeMode = ImeMode.Disable
End Sub

'必須入力テキストボックス
Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
    '(注意)TextBox1.CausesValidation = True でないと、このイベントは発生しません
    If TextBox1.Text = "" Then
        MsgBox("このテキストは必須入力です!", MsgBoxStyle.Critical)
        e.Cancel = True
    End If
End Sub

'数字専用テキストボックス
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
    Dim intKey As Integer = Asc(e.KeyChar)

    If (intKey < 47) Or (intKey > 57) Then
        '数字以外が入力された場合
        If intKey <> 8 Then
            'なおかつBackSpaceでもない場合は入力を無効にする
            e.Handled = True
        End If
    End If

End Sub

'ABCDE無効テキストボックス
Private Sub TextBox3_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox3.KeyPress
    Const C_NOCHAR As String = "ABCDEabcde"
    Dim i As Integer

    For i = 0 To C_NOCHAR.Length - 1
        If e.KeyChar = CChar(C_NOCHAR.Substring(i)) Then
            '"ABCDE"のいずれかを含む場合は無効にする
            e.Handled = True
            Exit For
        End If
    Next

End Sub

サンプルソースのダウンロード


ソースのダウンロード


TOP.NETWindowsForm → This Page
Valid CSS!