複数個のボタンのTextプロパティをかえる。

[戻る]
ym 2002/09/28(土) 21:28:07
環境 Windows 2000,VB.NET

複数個(70〜80)のボタンを画面に配置し、このボタンのプロパティのTextをコントロー

ル配列を用いて変えたかったのですが(For文などで回して)しかし、.NETではコントロ

ール配列のindexというものが存在しません。何か良い方法はないでしょうか?

現在のソースコード
Button1.Text="AAA"
Button2.Text="BBB"
Button3.Text="CCC"
   ・
   ・
   ・
Button80.Text="ZZZ"

べーちゃん 2002/10/01(火) 06:14:29
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.関連はないが、テキストを配列にして格納している。

のいずれでしょう。

しかし、いずれにせよ。できればそのような書き換えのない
プログラム構成が最良なんですが。

ym 2002/10/02(水) 08:27:49
ボタン表示用の配列を作成しています。ヘルプ等で調べたところ、TabindexやTagプロパティを
 
使ったら出来るように書いてあったのですが・・

べーちゃん 2002/10/03(木) 02:51:51
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

ところで、ヘルプを調べられたのでしたら、その方法を試してみられましたか。
まず自分で調べて色々試してみる、それでもだめならわからないところをきく
というのが最低限のマナーですよ。

古いスレッドには追加発言できません。