• ベストアンサー

.net 2010VB配列TextBox貼り付ける

angel_Zの回答

  • angel_Z
  • ベストアンサー率66% (12/18)
回答No.2

こんにちは。 vb6の様に使いたいのであれば、 Microsoft.VisualBasic.Compatibility アセンブリを参照設定に加えておいてください。 ツールボックスにて、すべてのWindowsフォーム→右クリック→アイテムの選択→.NETFrameworkコンポーネント内のLabelArrayにチェックを入れてOK。 すべてのWindowsフォームの最終尾にLabelArrayが追加されます。 フォームにドラッグすると、デザイン下にコントロール名:LabelArray1が追加されます。 ツールボックスから、Labelをドラッグします。(コントロール名:Label1) コントロール名を_LabelArray1_0に変更します。(コントロール名は何でもいいですが。) ここからは、フォームのデザイナに追加していきます。 _LabelArray1_0にインデックスを付けます。 '_LabelArray1_0 ' Me._LabelArray1_0.AutoSize = True Me._LabelArray1_0.Location = New System.Drawing.Point(58, 228) Me._LabelArray1_0.Name = "_LabelArray1_0" Me._LabelArray1_0.Size = New System.Drawing.Size(80, 12) Me._LabelArray1_0.TabIndex = 1 Me._LabelArray1_0.Text = "_LabelArray1_0" Me.LabelArray1.SetIndex(Me._LabelArray1_0, CType(0, Short)) ←ここに追加 が書かれているところに追加します。 フォームのデザインに戻ります。 フォームのLoadに下記記載してLoadしてみます。 ラベルの表示がaaとなればOKです。 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load LabelArray1(0).Text = "aa" End Sub 2個目以降追加する場合は、コントロールを張り付けた後にコントロール名を_LabelArray1_1 にして同じくデザイナに、 '_LabelArray1_1 Me.LabelArray1.SetIndex(Me._LabelArray1_1, CType(1, Short)) 'LabelArray1_2 Me.LabelArray1.SetIndex(Me._LabelArray1_2, CType(2, Short)) の様にSetIndexを手動で追加していく必要がありますので、 数が多いと大変ですが。。。

MassyPie
質問者

補足

ご回答ありがとうございます。 .net VBでの配列は、無理やり設定するようなものなのですね。 私が配列にこだわるのは、下記のようなことをしたいからです。 .netでは、どのように実現させるのが一般的でしょうか? 重ね重ねよろしくお願い致します。 For inti = Text1.LBound To Text1.ubound Text1(inti).Text = "TEXT" & CStr(inti) Next inti

関連するQ&A

  • VB6(SP5)とVB.NET のテキストボックス等の配列について

    VB6(SP5)で、プログラミングをしております。 現在、VB.NETを勉強中です。 1つ疑問が出てきました。Text1等のインデックス プロパティが無い様なのですが、配列のテキストボッ クスやラベルは無いのでしょうか? 宜しくお願い致します。

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

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

  • vb2008 コントロール配列

    VB6からVB2008へ移行を検討しているものです。 そこで質問なんですが、VB2008でコントロールの反復処理はどう処理すればいいのでしょうか? VB6の時はコントロール配列を使用して、ForNextで繰り返せばそれらしいことはできました。VB2008はコントロール配列がサポートされていないのでどうすればいいかわかりません。みなさんはどう反復処理を行っているのか教えていただきたいと思います。 具体的な処理として、テキストボックス1~10があり、そのテキストボックスの内容を1~10の順番で、テキストボックス11~20に格納する。以上、宜しくお願いします。

  • Textbox

    TextboxをFormに40個置きます。で、実行でFormを出したら1~40の数字をTextboxに表示させるようにしたいのです。 やり方なのですが、各TextプロパティのTextに数字を入れるというやり方ではない方法でやりたいのです。 40個のTextboxを配列にしてtext(0)・・・text(39)でやろうと思ったのですがどうもうまくいきません>< どなたかご教授お願い致しますm(__)m

  • vb2005 ピクチャボックスを配列で再定義

    vb2005 フォーム上のピクチャボックスを5個作成。 コードで作成したピクチャボックスの配列pt(4)にそのプロパティをコピーしたいのですが、 どのようにしたらよいでしょう? 個々にこぴーするのではなくループでできませんか?

  • VB2008によるコントロール配列

    VB初心者でただ今勉強中です。VB2008です。 Form1の中にたくさん(100個くらい)の星(ビットマップデータ)をちりばめ、その星がランダムに点いたり消えたりするプログラムを作成しようとしています。 フォームにPictureBoxを配置して(星.bmp)とします。 その星を100個フォーム上にちりばめたいのですがPictureBoxを100個も置くのはムダな労力です。 それで配列を使いたいのですが、PictureBoxを1つだけフォームに配置してそれをコード上で配列として使う方法がわかりません。 いろいろ調べてみたのですが初心者にはわからない説明ばっかりで途方に暮れています。

  • VB2005 ラベル(ボタン)をコントロール配列のようにしたい

    VB2005を使用していますが、画面に貼り付けている同じ名前のラベルおよびボタンをコントロール配列のようにしたいのですが、方法が分かりません。VB6ではラベル(ボタン)のIndexに番号を付けていけばよかったのですが。どなたか知ってれば教えて頂きたいのですが。 よろしくお願いします。

  • VB6.0でのTextboxの高さ変更

    VB6.0を使用しています。 下記のようにテキストボックスを動的配置した際にボックスの高さを変更したいのですが、文字の大きさ等に依存しているよう?で変更できません。 よく似た質問でMultiline をTrueにするような物があり、試してみましたがエラーとなってしまいます。 もう少し小さくしたいのですが何を変更・追加すればよいのでしょうか? どなたかご教授願います。 Private Sub Form_Load() Dim add_tbox As TextBox Set add_tbox = Controls.Add("VB.textbox", "text") With add_tbox .Text = "aaa" .Height = 240 '---テキストボックスの高さ .Left = 2270 .Top = 1700 .Width = 350 .FontSize = 9 '.MultiLine = False ---これを追加するとエラー"値の取得のみ可能なプロパティに値を設定する事はできません" .Visible = True End With MsgBox add_tbox.Height '---テキストボックスの高さ確認(270となっている) End Sub

  • VBAでコントロール配列を持つことは可能ですか?

    Excel2002、OSはXPです。 VBではコントロールに配列を持つことが出来ましたが、 VBAでコントロール配列を持つことは可能でしょうか? やりたいことはユーザーフォームにラベルを100個ぐらい貼り付けて、 テキストボックス入力した値がCell(i,1)と等しければ、 i番目のラベルのCaptionに文字を入力したい。という感じです。 もしVBのようにコントロール配列を持てれば、 If TextBox1.text=Cells(i,1) Then Label(i).Caption="~~" という風に出来るのですが、どうも配列の設定がVBのようにできません。 プロパティにINDEXが無いですし、オブジェクト名を同じにしたら エラーとなってしまいますし。。 もし出来ないのであれば、何か回避策のようなものはないでしょうか? 力技で100個IFを書けば出来ることは出来るのですが・・ If TextBox1.text=Cells(i,1) Then If i = 1 Then Label1.Caption="~~" ElseIf i=2 then Label2.Caption="~~" ・・・・

  • VB6での時間計算について

    VB6での時間計算について VB6で時間計算のプログラムを作成しています。 しかし、行き詰ってしまいました。 どなたかご教授願います。 3時50分から10時20分は何時間分経っているかという計算式で悩んでいます。 時間を打ち込み用にテキストボックスを4つ作ってまして、一つ目に「3」、二つ目に「50」、三つ目に「10」、四つ目に「20」という風に打ち込みコマンドボタンを押すと6.5時間と算出されテキストボックスかラベルに表示されるといったことをするにはどうしたらいいのでしょうか?