お世話になります。
■VB6で行っていたTextBox(PictureBox)にループを使って貼り付ける方法を
VB.NET 2010で行おうと考えています。
For i = 1 To 3
TextBox(i).Text=i
Next
■gogleより検索したところ次の方法があるそうですが、
dim txt(2) as textbox = { txtNo1, txtNo2, txtNo3 }
Dim MyControls As Hashtable = CreateControlCollection(Me) Dim i As Integer
For i = 1 To 3
MyControls("TextBox" & i).text = "Hello!" など
Next
dim txt(2) as textbox = { txtNo1, txtNo2, txtNo3 }
↑この部分で 明示的な初期化は、明示的な環境で宣言された配列に対しては
許可されていません。とエラー出力ます。
Dim MyControls As Hashtable = CreateControlCollection(Me) Dim i As Integer
↑この部分でもエラーでていました。
別の方法でも構いません。何か良い方法を教えていただきたいです。
どうぞ、宜しくお願いします。
Dim txts() as textbox = { TextBox1, TextBox2, TextBox3 }
Dim i as Integer
For i = 0 to 2
txts(i).Text = "Hello!"
Next
こんな感じでどうでしょう?
txtsは実際にはPrivate変数として定義してForm内で常に使用可能なように
しておいた方が便利です。
ありがとうございます。
上手くいきました!
TextBoxについてもう一つ質問させてください。
Hello などのデータを貼り付けるのですが、
Helloのときは、Backcolor を 赤にしたいのですが、
配列などを使って色を変更することはできるのでしょうか?
追加質問になりますが、どうぞ宜しくお願いします。
> Helloのときは、Backcolor を 赤にしたいのですが、
赤にするだけですか?
それだけだと、赤くした TextBox の内容が "Hello" で
無くなったときも赤いままですが、それで良いのでしょうか。
> 配列などを使って
それって、TextBox の配列ですか? 色情報の配列ですか?
それともデータ内容(Helloなど)の配列ですか?
ここでいう「配列」が、何を指しているのか分かりませんが、
配列だと難しいのであれば、無理に使わなくとも良いかと思いますし、
配列が必要なら、好みに応じて利用すれば良いのでは無いでしょうか。
> 色を変更することはできるのでしょうか?
たとえば、「TextBox の TextChanged イベント」で、自身の Text を
If 文で調べ、それが "Hello" だった場合に、BackColor に
Color.Red をセットするコードを用意しておけば良いと思います。
イベント設定は、Handles で固定的に指定にしても良いですし、
AddHandler で動的に割り当てても良いでしょう。
あるいは Text をセットする時に、一緒に BackColor もセットする手もありますね。
魔界の仮面弁士様 返答ありがとうございます。
>赤くした TextBox の内容が "Hello" で
>無くなったときも赤いままですが、それで良いのでしょうか。
IF文で"Hello"の時は赤を、それ以外は黒と考えています。
>それって、TextBox の配列ですか? 色情報の配列ですか?
>それともデータ内容(Helloなど)の配列ですか?Dim txts() as textbox = { TextBox1, TextBox2, TextBox3 }こちらを使ってになります。
次のようにMe.を加筆したところTextBox内の色を変えることができました。
{Me.TextBox1, Me.TextBox2, Me.TextBox3 }
>「TextBox の TextChanged イベント」
このような方法もあるんですね!参考になります。
PictureBoxでも同じような方法で動作確認し、この問い合わせを ”解決済”にしたいのですが、他の作業が入ったので、なかなか先に進めない状況になりました。
確認できましたら、送球に”解決済”にしようと考えておりますので。
大変申し訳ありませんが、現状維持をお許しください。
PictureBoxでも画像を貼り付けることができました。
shu様、魔界の仮面弁士様 ありがとうございます。
少しずつレベルアップしていこうと思います。
ツイート | ![]() |