環境 Windows 2000,VB.NET
複数個(70~80)のボタンを画面に配置し、このボタンのプロパティのTextをコントロー
ル配列を用いて変えたかったのですが(For文などで回して)しかし、.NETではコントロ
ール配列のindexというものが存在しません。何か良い方法はないでしょうか?
現在のソースコード
Button1.Text=AAA
Button2.Text=BBB
Button3.Text=CCC
・
・
・
Button80.Text=ZZZ
ymさん、こんにちは。
難題ですね。
プロジェクトはWindowsとWebのどちらなんですか。
また、
>Button1.Text=AAA
>Button2.Text=BBB
>Button3.Text=CCC
この割り当てるテキストには
1.割り当てる以前のテキストと何か関連性があるんですか。
Button1.Text A->A1
Button2.Text X->X1
2.ボタン番号と何か関連性があるんですか。
Button1.Text A
Button2.Text B
3.前述の1と2の両方と関連がある
4.関連はないが、テキストを配列にして格納している。
のいずれでしょう。
しかし、いずれにせよ。できればそのような書き換えのない
プログラム構成が最良なんですが。
ボタン表示用の配列を作成しています。ヘルプ等で調べたところ、TabindexやTagプロパティを
使ったら出来るように書いてあったのですが・・
ymさん、こんにちは。
.NETの場合プロジェクトがWindowsかWebかで方法が異なります。
>ボタン表示用の配列を作成しています。ヘルプ等で調べたところ、Tabindexや
>Tagプロパティを使ったら出来るように書いてあったのですが・・
まあTagが使えるということはWindowsなんでしょうね。
私は該当するヘルプを見ていないので、もっとよい方法があるかもしれませんが
Windowsのプロジェクトであれば、該当するボタンのTagプロパティに
1からインデックスとなる番号を設定し、次のルーチンを使えば実現できる
はずです。
>Dim strTexts() As String = {", ABC, DEF, GHI, JKL}
>Dim ctl As Control
>Dim btn As Button
>
>For Each ctl In Controls
> If TypeOf ctl Is Button Then
> btn = CType(ctl, Button)
> If Val(btn.Tag) <> 0 Then
> btn.Text = strTexts(Val(btn.Tag))
> End If
> End If
>Next ctl
ところで、ヘルプを調べられたのでしたら、その方法を試してみられましたか。
まず自分で調べて色々試してみる、それでもだめならわからないところをきく
というのが最低限のマナーですよ。