質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

4162閲覧

KeyPressイベントでテキストの中身を修正する関数を共通で持たせて、それぞれのテキストを修正させたい場合のやり方について

GiveAHand

総合スコア286

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2016/07/29 03:29

C#でKyePressイベントで、テキストボックスの中身を修正する方法についてです。

テキストボックスが複数あり、全てのテキストボックスのKeyPressイベントのイベントハンドラに、

C#

1private void OnlyNumericKeyPress(object sender, KeyPressEventArgs e) 2{ 3 if (!('0' <= e.KeyChar && e.KeyChar <= '9')) 4 e.Handled = true; 5}

このような関数を割り当てて、数字以外は入力出来ないようにしています。

この関数に機能を追加して、KeyPress時に毎回テキストをクリアした後、改めて数字を入力するようにしたいのです。

なので、if文の前に、テキストのクリア処理を書きたいのですが、senderのメンバにも、eのメンバにもtextが無いので、if文判定の前にテキストをクリア出来ません。

KeyPressやChangeイベント時に、イベントが発生したオブジェクトのテキストを変えるには、どうしたらいいのでしょう?

テキストボックスの数が多いので、出来ればひとつの関数を全てのテキストボックスのイベントに割り当てる方法でやれたらと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

senderをTextBoxにキャストして取得することができます。

c#

1TextBox tb = (TextBox)sender; 2tb.Text = "hoge";

投稿2016/07/29 03:54

gusao

総合スコア185

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

GiveAHand

2016/07/29 05:18

gusao様 うまくいきました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問