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

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

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

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

Q&A

解決済

2回答

2371閲覧

C# テキストボックスの制御

nothing

総合スコア27

C#

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

0グッド

0クリップ

投稿2016/02/08 09:14

入会2度目の質問です。

WPFでテキストボックスを配置し、イベント発生時に何番目のテキストボックスなのかを判断して処理を行おうとしています。

現在、私のスキルでは、テキストボックス1つに対し、1イベントの処理を書くしかなく、まとめて行いたいのですが、どうすればよいのかわかりません。

複数のテキストボックスのイベントを1つにまとめることができれば幸いなのですが、プロパティーの設定の仕方もわかりません。

どなたかうまい方法をご存じないでしょうか?
どうぞよろしくお願いします。

ソースは以下です。
private void AAA_Load(object sender, EventArgs e)
{
this.codeText = new TextBox[5];

this.codeText[0] = this.txtcd1;//フォームのテキストボックスを配列に this.codeText[1] = this.txtcd2; this.codeText[2] = this.txtcd3; this.codeText[3] = this.txtcd4; this.codeText[4] = this.txtcd5; } private void codeText_KeyDown(object sender, EventArgs e) { int num = Array.IndexOf(codeText,sender); if(e.KeyCode==System.Windows.Forms.Keys.Enter){ 処理 } }

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

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

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

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

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

guest

回答2

0

ベストアンサー

XAML側でKeyDown="codeText_KeyDown"を追加すればいいと思います。

投稿2016/02/08 10:57

ozwk

総合スコア13521

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

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

nothing

2016/02/08 14:24

ご回答ありがとうございます。 試してみたところ、テキストボックス全てを範囲指定し、 プロパティーに「KeyDown=scodeText_KeyDown」を指定しましたら、 全体のテキストボックスに対し思うように動作しました。 ただ、テキストボックスに複数回入力を行うと、 this.codeText[i]に前回分の値が入ったままになってしまうので、 配列使用の際は、クリアのタイミングを考えます。 ありがとうございました。 使用言語:Visual C# 2015 community Ver
guest

0

フォームのロードイベントでまとめて処理したいコントロールをAddHandlerでクリックイベント処理用の関数に追加すれば上手くいくと思います。

投稿2016/02/08 10:51

KoichiSugiyama

総合スコア3041

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

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

nothing

2016/02/08 14:16

ご回答ありがとうございます。 試してみたところ、 Loadのタイミングで記載すると確かにできそうです。 ただ、この方法だと、 1.this.txtcd1からthis.txtcd5までのキーダウンイベントをそれぞれform側で設定する。 2.this.txtcd1からthis.txtcd5まで1まとめにしたキーイベントを作成する。 3.その後、1まとめにしたキーイベントに対し、関数を作成。 と3手順必要になりそうです。 さらに1つずつのキーイベントを作成し、まとめて1つのキーイベントをさらに作成する方法が私にはわかりませんでした。 せっかくご教授いただいたのに申し訳ありません。 コードが簡潔なので、 もっと複雑なプログラムになった際、挑戦してみます。 ありがとうございました。 使用言語:Visual C# 2015 community Ver
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問