- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB.Netのコントロール名の操作について)
VB.Netコントロール名の操作について
このQ&Aのポイント
- VB.Netのコントロール名を操作する方法について教えてください。
- 変数Aに代入されているコントロール名がフォーム上に存在するかどうか判断し、存在すればそのコントロールに入力されている値を取得したいです。
- 現在のコードでは「オフジェクト参照がオブジェクトインスタンスに設定されていません」というエラーが発生しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ちなみに、「オフジェクト参照がオフジェクトインスタンスに設定されていません」のエラーは、 For Each CntWk In objwk でobjwkのコントロールを見ようとしたけど、 Dim objwk As Object で宣言されただけで実体のオブジェクトがobjwkに設定されていないので出るエラーです。 Dim CntWk As Control Dim objwk As Object Dim 変数A As String 変数A = "?????" objwk = Me For Each CntWk In objwk.Controls 'Controlsプロパティ(コレクション型)を指定する。 If CntWk.Name = 変数A Then MsgBox(CntWk.Text) End If Next コレでも動きます。
その他の回答 (1)
- Idler999
- ベストアンサー率27% (63/231)
回答No.1
フォームのイベントに書くのなら、 Dim wk As Control For Each wk In Me.Controls If wk.Name = "?????" Then MsgBox(wk.Text) End If Next コレで動きます。?????はコントロール名です。 ?????という名のコントロールがフォーム上にあれば、そのテキストをメッセージBOXで表示します。 Meはイベントを起した自分自身のことを指すので、フォームイベントならフォームのことを指します。 もちろん、フォーム名.Controls でも構いません。
お礼
Idler999さん: できました! いつもどうもありがとうございます。