私はWinForm
に8 TextBoxes
のグループを持っており、それらを含むオブジェクト配列を作成しました。 Form
の初期化では、TextBox.text
をそれぞれEnviron("USERPROFILE") & "\Documents"
に設定して、各ボックスのデフォルトのファイルパスを表示します。これらのボックスは、ユーザーの入力に基づいてどのファイルをロードするかを表示するために使用されます。私の確立されたテキストボックスをループし、各.Textを定義する方法はありますか?
現在のコードは次のようになります。
Public Sub New()
InitializeComponent()
BWGPTextBox.Text = Environ("USERPROFILE") & "\Documents"
BWBRTextBox.Text = Environ("USERPROFILE") & "\Documents"
ChGPTextBox.Text = Environ("USERPROFILE") & "\Documents"
ChBRTextBox.Text = Environ("USERPROFILE") & "\Documents"
CCGPTextBox.Text = Environ("USERPROFILE") & "\Documents"
CCBRTextBox.Text = Environ("USERPROFILE") & "\Documents"
PPGPTextBox.Text = Environ("USERPROFILE") & "\Documents"
PPBRTextBox.Text = Environ("USERPROFILE") & "\Documents"
End Sub
は、私はそれが各ボックスを定義するには(これは動作しませんを除いて、以下に類似)Forループ内で動作することができます方法はありますか?それが格納されている真の種別を隠蔽するので、私はまた、対象となる特定のタイプの格納[Excel.Application].[Excel.Workbook].Open(TextBoxesList(x).Text)
Public Sub New()
InitializeComponent()
Dim TextBoxesList As Object = {BWGPTextBox, BWBRTextBox, _
ChBRTextBox, ChGPTextBox, _
CCGPTextBox, CCBRTextBox, _
PPGPTextBox, PPBRTextBox}
For Each x In TextBoxesList
TextBoxesList(x).GetType() ' = Environ("USERPROFILE") & "\Documents"
Next
End Sub
「As Object」は、使用しようとしているオブジェクトを囲むので、ほとんど常に間違ったアプローチです。 'Dim TextBoxesList As TextBox()= ...'はテキストボックスの配列を作成する*と*はテキストボックスのプロパティにアクセスできるようにする – Plutonix
@Plutonixこの配列を作成して定義するには 'Dim TextBoxesList As TextBox()= {TextBox1、 TextBox2、[....]} '仕事?もしそうなら、 'TextBoxesList(x).text ="ここにテキストを置く "はうまくいくでしょうか? – Munkeeface
@Plutonix 'TextBoxesList(x).text ="ここにテキストを置く "の後、' Value of Type System.Windows.Forms.Textboxの値をIntegerに変換できません。 'というエラーが表示されます。なぜこれがエラーであるか知っていますか? (申し訳ありませんが、私はVisual StudioのVisual Studioを初めて使っているので、まだエラーを解読するのには慣れていません...) – Munkeeface