9

テキストボックスから特殊文字 (%,&,/,",'など) を除外する必要があります

出来ますか?key_press イベントを使用する必要がありますか?

string one = radTextBoxControl1.Text.Replace("/", "");
                string two = one.Replace("%", "");
                //more string
                radTextBoxControl1.Text = two;

このモードでは非常に長い =(

4

7 に答える 7

17

英数字とスペース文字のみを保持しようとしていると思います。このようなキープレスイベントを追加します

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    var regex = new Regex(@"[^a-zA-Z0-9\s]");
    if (regex.IsMatch(e.KeyChar.ToString()))
    {
        e.Handled = true;
    }
}
于 2013-10-22T17:38:58.393 に答える
6

これを使用できます:

private void textBoxSample_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = !char.IsLetter(e.KeyChar) && !char.IsDigit(e.KeyChar);
    }

特殊文字をブロックし、int/numbers と文字のみを受け入れます

于 2014-11-10T10:00:47.027 に答える
5

以下のコードでは、数字、文字、バックスペース、およびスペースのみを使用できます。

対処しなければならないトリッキーな変換があったため、VB.net を含めました。

C#

private void textBoxSample_KeyPress(object sender, KeyPressEventArgs e)
{
    e.Handled = e.KeyChar != (char)Keys.Back && !char.IsSeparator(e.KeyChar) && !char.IsLetter(e.KeyChar) && !char.IsDigit(e.KeyChar);
}

VB.net

Private Sub textBoxSample_KeyPress(sender As Object, e As KeyPressEventArgs) Handles textBoxSample.KeyPress
    e.Handled = e.KeyChar <> ChrW(Keys.Back) And Not Char.IsSeparator(e.KeyChar) And Not Char.IsLetter(e.KeyChar) And Not Char.IsDigit(e.KeyChar) 
End Sub
于 2015-07-23T20:29:14.337 に答える
0

「Text Changed」イベントを使用できます(これはコピー/貼り付けで発生すると思います(確かではありません))。

イベントがトリガーされたら、たとえば PurgeTextOfEvilCharacters() などのメソッドを呼び出します。

このメソッドには、「ブロック」する文字の配列があります。TextBox コントロールの .Text の各文字を調べて、文字が配列内に見つかった場合は、必要ありません。「大丈夫」の文字で文字列を再構築すれば、準備完了です。

もっと良い方法があると思いますが、これで問題ないようです。

于 2013-10-22T17:13:26.570 に答える
0

私にとって最高:

void textBoxSample_KeyPress(object sender, KeyPressEventArgs e)
    {
        e.Handled = Char.IsPunctuation(e.KeyChar) ||  
                      Char.IsSeparator(e.KeyChar) || 
                      Char.IsSymbol(e.KeyChar);
    }

キーの削除とバックスペースを有効にすると、より便利になります...など

于 2015-02-03T02:23:37.950 に答える