• ベストアンサー

コントロールに連続して名前をつけたいのですが

いつもお世話になっております。 VB入門者です。 VB2005なのですが、 たとえばtextboxにtextbox1~txtbox30と名前をつけたいときに、 一つ一つ名前を変えていく以外に簡単に出来る方法は ないのでしょうか。 教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pulsa
  • ベストアンサー率57% (34/59)
回答No.2

結局1つづつになるんですが、ControlsとしてNameをStringで設定していきます Buttonを1個と何個かのTextBoxがあるとします "TextBox何とか"を"MyTXT何とか"に変更します Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   Dim MyControls   For Each MyControls In Me.Controls     If MyControls.name Like "TextBox*" Then       MyControls.name = Replace(MyControls.name, "TextBox", "MyTXT")     End If   Next MyControls   Me.Controls("MyTXT1").Text = "aaa" End Sub Forを工夫すれば、カウンターでループさせて設定する事も出来るでしょうし 『*』の所にカウンターを入れれば、"TextBox1"を"MyTXT1")に確実に変える事も出来るでしょう Me.TextBox1の代わりに使うためには、MyTXT1をObject宣言し、Nameの代わりに Set MyTXT1 = MyControls のように、セットしていきます。 つまり使う分だけ「MyTXT何とか」を宣言しておく必要があるので、あんまり手順の短縮にならないんです^^; また、実行時に変更できるプロパティではありませんので、宣言以外の方法は、フォームへの配置時に変更する方法でしょう(つまり一括ぢゃない) あとは、元から"MyTXT"となっているコントロールを自作することになりますが『デザイン時の Windows フォーム コントロールの開発』をヘルプで見てみて下さい ここだけで説明しきれるものでないのです… そんな難しく無いんですけどね メリットも多いし、この際使い方を覚えるのも手だとは思いますが、質問から離れすぎるのこのへんで^^;

oshiete44
質問者

お礼

ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

noname#221368
noname#221368
回答No.1

 一番簡単な方法は、TextBoxを一個貼り付けて(名前はTextBox1になります)、それを手動で29回コピーする事です。自動で連番になります。  もう一つは、プログラムで Loop を30回まわして、TextBox を30個 Load し、それぞれの名前に Loop Counter の数字を付与する事です。  以上二つは、今も昔も変わりませんが、もし30個の TextBox に関する共通 Event の話なら、もう少し状況を明確にして、再度ご質問下さい。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • コントロールの配列化について

    VB入門者ですが、よろしくお願いします。 2005でtextboxの配列かをするにはどうすれば、 いいのでしょうか? 始めたばかりなので、できるだけわかりやすく お願いします。

  • VB2005 コントロール配列について教えていただけませんか?

    現在VB2005を用いてプログラムを行なっている初心者です。 ここのサイトでVB2005ではコントロール配列は使用できないことを知りました。そこで、例えばフォーム上にTextBoxを5個配置して、各TextBoxに入力された値を配列に格納するのにはどのようにすれば良いでしょうか? data(0) = textbox1.text data(1) = textbox2.textと一つずつやるしかないでしょうか・・・ For文などを用いて簡単にできる方法を教えてください。 よろしくお願い致します。

  • コントロール配列と同じような扱い方

    TextBox1、TextBox2、TextBox3・・・・TextBox10 と10個のテキストボックスにVB6で使っていたコントロール配列と同じような処理の仕方をコードで教えていただけませんか。 for i=0 to 9 TextBox(i).Text=i next i 上記のコードをVB.NETで書くとすれば、どのように書けばいいかということさえわかれば、なんとか頑張れる気がします。

  • NumericUpDownコントロールに数字以外を入力したい

    VB2003環境なのですが、NumericUpDownコントロールに 数字以外を入力できるようにしたいのですが そのようなカスタムコントロールを作る方法がありましたら 教えて頂きたいです。 感じとしてはTextBoxにSpinButtonをくっ付けた感じのものが 欲しいのですが方法がありましたら教えて頂きたいです。

  • VB6 DataGrid コントロールについて

    お世話になっております。 VB6でDataGridコントロールについてどなたか教えてください! いろいろ調べたのですが、昔のコントロールのせいかあまり資料がありませんでした。 DataGridをフォームに貼り付けました。 ExcelのB1セルをDataGridに表示したいのですが、わかりません。 VBのTextBoxに表示はできます。DataGridが全くわかりません。 どうか、ご教示お願い致します!

  • VB2005におけるコントロール配列

    VB2005でフォーム上にTextBoxがいくつかあるとしますと、そのTextBoxをコントロール配列のようにしたいのですがどのようにすればよいのかわかりません。調べてみたのですがわからなかったのでお力をお貸しください。よろしくお願いいたします。

  • コントロール配列

    VB.NETでコントロール配列を行うときには、 dim txt as testbox = new textbox txt = me.textbox1 とすれば、フォーム上のtextbox1をtxtで 操作することが可能となりますが、 txt = me.textbox1というのは、me.textbox1の 参照先を代入していることとなるのでしょうか?

  • {VB.NET}WINFORM FORMLOAD直後のSETFOCUS

    いつもお世話になっております。 {VB.NET}WINFORM FORMLOAD直後のSETFOCUS VB.NETではFORMLOAD内でSETFOCUSができないため FORMLOADイベントの直後にFOCUSを設定したいのですが、 FORMLOAD直後、イベントをおこさずに FOCUSをTXTBOX1に設定できないでしょうか? 以前TABを0にするというのをどこかで みかけましたが、 FORMLOAD内で TXTBOX1.TABINDEX = 0 とやってみましたがうまくいきません。 どなたかおしえていただけませんでしょうか?

  • コントロールの配置について

    VB入門者ですが、よろしくお願いします。 2005を使用しているのですが、 プロパティのsizeをWindouwStateにしたのですが、 この場合、コントロールの 配置が中央にくる方法を教えていただけないでしょうか? よろしくお願いします。

  • VB.NETでテキストボックスをコントロール配列のように扱いたいんですが

    VB.NETではコントロール配列はサポートされていませんが、TextBox1~TextBox10を配列のように扱う方法はありますか?ちなみに、以下の方法ではエラーとなりました。 Controls("TextBox" & i).Text でTextの内容を取得しようとした よろしくお願いします。

唐辛子の乾燥日数について
このQ&Aのポイント
  • 初めて唐辛子を栽培し、乾燥させるためにどのくらいの日数が必要か迷っています。
  • 乾燥させるためには風通しの良い場所で数日間干す必要がありますが、いつまで続ければ良いのか分かりません。
  • また、乾燥させすぎると辛さが減ってしまうので、どのタイミングで刈り取るべきかもわかりません。
回答を見る