C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: テキストボックスを半角英数字のみ入力可にしたい


(過去ログ 170 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■96858 / inTopicNo.1)  テキストボックスを半角英数字のみ入力可にしたい
  
□投稿者/ くろごま (3回)-(2021/02/19(Fri) 16:37:16)

分類:[C#] 

C#のフォームアプリで制作しています。
textboxを半角英数字のみ入力可能にするにはどうすればいいのでしょうか?
サンプルコードなどを教えていただければ助かります。

引用返信 編集キー/
■96863 / inTopicNo.2)  Re[1]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ Azulean (1182回)-(2021/02/19(Fri) 20:22:35)
No96858 (くろごま さん) に返信
> C#のフォームアプリで制作しています。
> textboxを半角英数字のみ入力可能にするにはどうすればいいのでしょうか?

「textbox 半角英数字のみ C#」で検索するといろいろと出てきますが、試されていますか?
汎用的な課題ほど、世の中にサンプルはあふれているはずなので検索してみた方が速いかもしれません。
引用返信 編集キー/
■96879 / inTopicNo.3)  Re[1]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ kiku (218回)-(2021/02/22(Mon) 10:11:37)
2021/02/22(Mon) 10:13:23 編集(投稿者)
2021/02/22(Mon) 10:13:11 編集(投稿者)

<pre><pre>■No96858 (くろごま さん) に返信
> C#のフォームアプリで制作しています。
> textboxを半角英数字のみ入力可能にするにはどうすればいいのでしょうか?
> サンプルコードなどを教えていただければ助かります。

下記URLが参考になると思います。
https://dobon.net/vb/dotnet/control/numerictextbox.html

上記には、数字のみ入力可能とするサンプルがありますが
応用できませんか?
引用返信 編集キー/
■96880 / inTopicNo.4)  Re[1]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ KOZ (160回)-(2021/02/22(Mon) 10:23:07)
No96858 (くろごま さん) に返信
> C#のフォームアプリで制作しています。
> textboxを半角英数字のみ入力可能にするにはどうすればいいのでしょうか?
> サンプルコードなどを教えていただければ助かります。

TextBox を継承し、OnKeyPress メソッドと WM_PASTE メッセージを処理すればよいかと。

using System.Text;
using System.Windows.Forms;

class AlphNumText : TextBox
{
    const int WM_PASTE = 0x0302;    // クリップボード貼り付け

    const char BACKSPACE = '\b';    // Backspace キー
    const char CTRL_C = '\x03';     // CTRL+C
    const char CTRL_V = '\x16';     // CTRL+V
    const char CTRL_X = '\x18';     // CTRL+X
    const char CTRL_Z = '\x1A';     // CTRL+Z

    protected override void OnKeyPress(KeyPressEventArgs e)
    {
        switch (e.KeyChar)
        {
            case BACKSPACE:
            case CTRL_C:
            case CTRL_V:
            case CTRL_X:
            case CTRL_Z:
                break;
            default:
                if (!IsValidChar(e.KeyChar))
                {
                    e.Handled = true;
                    return;
                }
                break;
        }
        base.OnKeyPress(e);
    }

    protected virtual bool IsValidChar(char c)
    {
        return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <= '9');
    }

    protected override void WndProc(ref Message m)
    {
        switch (m.Msg)
        {
            case WM_PASTE:
                if (Clipboard.ContainsText())
                {
                    var sb = new StringBuilder();
                    foreach (var c  in Clipboard.GetText())
                    {
                        if (IsValidChar(c))
                        {
                            sb.Append(c);
                        }
                    }
                    base.Paste(sb.ToString());
                }
                break;
            default:
                base.WndProc(ref m);
                break;
        }
    }
}

引用返信 編集キー/
■96893 / inTopicNo.5)  Re[1]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ 大谷刑部 (124回)-(2021/02/24(Wed) 10:00:32)
No96858 (くろごま さん) に返信
> textboxを半角英数字のみ入力可能にするにはどうすればいいのでしょうか?

手入力の半角英数のみを入力可とするのはKeyPressイベントで半角英数およびバックスペースのみ有効とすれば可能ですが、
コピペに関してはどうする予定でしょうか?

コピペを無効にしてよいなら、上記で[ctrl]+Vが既に無効になっているので、Form_Load等で当該テキストボックスの右クリックメニューを無効にしてしまえば、
全額の入力を完全排除できます。

半角英数のコピペを許したい場合には、[ctrl]+Vは有効にした上で、張り付いた全角文字を除去しなきゃならないので、かなり複雑度が増すと思います。
引用返信 編集キー/
■97722 / inTopicNo.6)  Re[1]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ Willis (1回)-(2021/07/06(Tue) 12:09:12)
Willis さんの Web サイト
I hardly comment, however i did some searching and wound upp here C#  VB.NET _掲_ - eLXg{bNX_pp_____. And I ddo have 2 questions for you if it's allright. Is it simply me or does it look like some of these commnents look as if they are coming from brain deadd individuals? :-P And, if you are writing at other online sites, I'd like tto keep up with anything new you have to post. Woould you make a list of all of all your social sites like your linkedin profile, Facebook page or twitter feed?
引用返信 編集キー/
■97724 / inTopicNo.7)  Re[1]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ PATIO (2回)-(2021/07/06(Tue) 14:21:45)
No96858 (くろごま さん) に返信
> C#のフォームアプリで制作しています。
> textboxを半角英数字のみ入力可能にするにはどうすればいいのでしょうか?
> サンプルコードなどを教えていただければ助かります。

普通にvalidationで半角英数で入れてくださいと表示して実行できなくする方が良いような気がします。
単に入れられないだけだと使う側からしたらよくわからないだけになりそう。

引用返信 編集キー/
■98057 / inTopicNo.8)  Re[2]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ website (1回)-(2021/09/02(Thu) 16:11:56)
website さんの Web サイト
Greetings! I've been followikng your blog for a while nnow and finally got the courage too go ahead and give you a shout out from Dallas Tx! Just wanted to say keep up the excellent work! C c__c websiite c c__c bng _
引用返信 編集キー/
■98058 / inTopicNo.9)  Re[2]: テキストボックスを半角英数字のみ入力可にしたい
□投稿者/ homepage (1回)-(2021/09/02(Thu) 16:17:08)
homepage さんの Web サイト
Veery nice post. I just stumbled upon your blog and wanted to say that I have truly enjoyed surfing around your blog posts. After all I'll be subscribing to your fed and I hope you write again soon! __t c__c tr_n __u homepage c c__c bng _
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -