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

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

新規登録して質問してみよう
ただいま回答率
85.50%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

Q&A

解決済

2回答

4847閲覧

複数のコントロールで同じような処理がしたい

nakajob

総合スコア13

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

0グッド

0クリップ

投稿2018/07/13 08:20

編集2018/07/13 08:40

#48個のテキストボックスで似たような処理がしたいです。

Private Sub TextBox_DoubleClick(sender As Object, e As System.EventArgs) Handles TextBox1.DoubleClick,TextBox2.DoubleClick,TextBox3.DoubleClick     処理 End Sub

今の考えている方法ですと、上記の方法でテキストボックスが48個羅列されることになります。
別の方法はないものなのでしょうか?

やりたい内容は以下の通りです。
テキストボックスをダブルクリック

入力フォームを表示

テキストに入力したい内容を書き込み、OKボタンを押す

OKボタンを押したときに内容が正しいかの判定

正しいならばダブルクリックしたテキストボックスに出力、違うならエラーの表示

これを16個と32個のテキストボックスでパネルに入れてあるグループで行いたいです。
(16個がパネル1、32個がパネル2)

何卒よろしくお願い致します。

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

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

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

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

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

sh_akira

2018/07/13 08:25

WinFormsで良いでしょうか。"似たような"ってことは全てのテキストボックスで判定が違うという事でしょうか。16個は同じで32個も同じでしょうか。48個全て違う判定でしょうか。
退会済みユーザー

退会済みユーザー

2018/07/13 08:27

質問(何がわからないか、何を聞きたいのか)が書いてないように見えますが? 質問に書いてあることを実現するコードを書いてくれと言うわけではないですよね?
nakajob

2018/07/13 08:32 編集

sh_akiraさん WinFormsです。処理は一緒です。どのパネルの、どのテキストボックスで行っているのかを把握しておきたいという意味です。
nakajob

2018/07/13 08:35 編集

SurferOnWwwさん コードを書いてほしいというわけではありません。今私が考えている方法だとHandlesの後ろに48個のtextBox*.DoubleClickが羅列されてしまう方法しか思いつかないので、別のやり方があれば教えてほしいという意味です。
sh_akira

2018/07/13 09:02

Handlesが嫌な場合AddHandlerで追加するしかありません。PanelのControlsをForEachで回してすべてのテキストボックスにAddHandlerするとか。
umyu

2018/07/15 02:32

@nakajobさんへ まず、「48個のテキストボックス」という画面レイアウトをDataGridViewなどを使ってどうにかするべきではないでしょうか。
guest

回答2

0

ベストアンサー

今私が考えている方法だとHandlesの後ろに48個のtextBox*.DoubleClickが羅列されてしまう方法しか思いつかないので、別のやり方があれば教えてほしいという意味です。

VB.NET でハンドラをイベントにアタッチするには、(1) 質問者さんが行っているように Handles 句を用いるか、(2) AddHandler 句を用いてイベントにハンドラのアドレスを設定するかのいずれかになるはずです。

詳しくは以下の記事を見てください。(日本語もありますが、翻訳がダメなので英語版です)

How to: Call an Event Handler in Visual Basic
https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/procedures/how-to-call-an-event-handler

Handles 句を使うのがイヤなら、AddHandler 句を用いる方法を取るしかないですが、「羅列されてしまう」というところは何ともならないかと思います。

投稿2018/07/15 01:57

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

  • TextBoxのTagに、1から48の数字を入れておく
  • DoubleClickedイベントハンドラでは、Senderから発行元のTextBoxが取れるので、そのTagを取得して、以後の動作を割り振るようにする
  • そのイベントハンドラを全TextBoxに設定

ああ、たんにPanelに乗ってるTextBoxね。
べつにPanelは関係ないですね
回答を修正しときます

投稿2018/07/13 08:26

編集2018/07/13 08:36
y_waiwai

総合スコア87719

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問