C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.84277 の関連記事表示

<< 0 >>
■84277  ループでの処理
□投稿者/ lop -(2017/06/08(Thu) 12:14:12)

    分類:[.NET 全般] 

    ご質問です

    現在、作成中のシステムでわからないことが・・・


    @同じ処理をLabel別でしたいが、11のLabelに対し同じ処理を書く必要があるのか?

    Private Sub tanaire_output()

    Dim read() As String = System.IO.File.ReadAllLines(output_t, myenco)

    If read(0) = "@処理してください" Then
    Lamp1.ForeColor = Color.Red

    End If

    サブプロシージャーで Lamp1〜Lamp11まで
    文字色を変えるだけなのですが

    read部分が @A〜変わり
    Aの場合は Lamp2.ForeColor = Color.Red 変えたいです

    この場合 Lamp(i)にしてLoop文にすればわざわざ書かなくていいと思い

    Label宣言 New とやりましたができません

    なにかいい方法ないですか?
    よろしくお願い致します
親記事 /過去ログ144より / 関連記事表示
削除チェック/

■84278  Re[1]: ループでの処理
□投稿者/ 魔界の仮面弁士 -(2017/06/08(Thu) 12:34:14)
    No84277 (lop さん) に返信
    > @同じ処理をLabel別でしたいが、11のLabelに対し同じ処理を書く必要があるのか?

    あらかじめ、Form の Load イベントなどで

     Private Lamps() As Label
     Private Sub Form1_Load(……
       Lamps = New Label() { Lamp1, Lamp2, Lamp3, … }
     End Sub

    などのように、配列に保存しておくと、利用する際に

     For Each lbl In Lamps
      lbl.ForeColor = Color.Red
     Next

    あるいは

     For i = 0 To Lamps.GetUpperBound()
      Lamps(i).ForeColor = Color.Red
     Next

    などとループ処理できます。


    > If read(0) = "@処理してください" Then
    >   Lamp1.ForeColor = Color.Red

    文字列との紐付けが必要ならば、たとえば
     Private hash As New Dictionary(Of String, Label)()
     Private Sub Form1_Load(……
       hash.Add("@処理してください", Lamp1)
       hash.Add("A処理してください", Lamp2)
       hash.Add("B処理してください", Lamp3)
         :
     End Sub
    のようにしておいて、
      For Each line In read
       If hash.ContainsKey(line) Then
        hash(line).ForeColor = Color.Red
       End If
      Next
    とか。
記事No.84277 のレス /過去ログ144より / 関連記事表示
削除チェック/

■84285  Re[2]: ループでの処理
□投稿者/ lop -(2017/06/09(Fri) 08:44:32)
    No84278 (魔界の仮面弁士 さん) に返信
    ありがとうございます

    できました!!
    Dictionaryは使ったことなかったので
    勉強になりました!!


記事No.84277 のレス / END /過去ログ144より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -