テキストボックスの名称 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 るしぇ  (社会人) 投稿日時 2009/8/28 02:01:57
>&でつなぐにはTextboxを文字列としなければだめなのですね。 
たとえ文字列にしたとしても、絵に描いた餅は食べられません。
文字列の"Textbox1"はいつまでたっても Textbox1 オブジェクト
にはなりません。

Controlsプロパティが用意されていない場合は、
>こちらの記事でも説明しているのでよろしければ参照してください。
>http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm
の最後の方に書いてあるとおり、自分で文字列の"Textbox1"と
Textbox1 オブジェクトを結びつけるようなコレクションを作成
するか、速度が遅くて良いなら、画面上の全てのコントロールを
ループで回し、Name が"Textbox1"と一致するものを探すことを
考えます。

プログラムに魔法はありません。地道に誰が考えてもできる方法を
積み重ねて処理が出来上がっていきます。
投稿者 SS  (学生) 投稿日時 2009/8/28 01:03:18
ありがとうございます!解決しました。

&でつなぐにはTextboxを文字列としなければだめなのですね。
投稿者 るきお  (社会人) 投稿日時 2009/8/26 22:08:34
こんにちは。

たとえば、次のようになります。
 
Dim i As Integer

For i = 1 To 3
    Me.Controls("TextBox" & i).Text = i
Next


こちらの記事でも説明しているのでよろしければ参照してください。
http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard20.htm

(textbox & i).text = i
これがダメなのは、
& は文字列をつなぐ記号(演算子)であって、プログラムで使用するのキーワードやオブジェクト名をつなぐことはできないからです。
プログラムで使用するキーワードやオブジェクト名をつなぐ手段はありません。
必要な場合にはたいてい今回のControlsプロパティのような何かの要求ごとの機能が用意されています。

投稿者 SS  (学生) 投稿日時 2009/8/26 19:57:55
質問させてください

フォーム内に、TextBox0,TextBox1,TextBox2といった名前のテキストボックスがいくつかあり、
それぞれのテキストボックスにループで値を順番に入力したいのですがうまくいきません。

具体的には

for i = 0 to 3
(textbox & i).text = i
next

のような感じです。
お願いします。