私のプログラムでは、いくつかのラベルを作成する必要があります。 ラベルの数は、設定ファイルの数に大きく依存します。簡単に動力学的に作成されたラベル
ラベルは、どのような種類のPLCモジュールがロードされ、どのくらいの数になっているかに基づいています。各PLCモジュール(入力モジュール)には、異なるI/Oアドレスがあります。ここでの唯一の定数は、各I/Oアドレスが1ワード長(16ビット)であることです。 Iを作成する必要がラベルより4つのワードである64入力モジュールをロードした場合、例えば
は、次のとおり
- 0.00 ... 0.15
- 1.00 ... 1.15
- 2.00 ... 2.15
- 3.00 ... 3.15
各ラベルのような名前を取得します。
OnOff_000 ... OnOff_015など。
しかし、私にとっては厄介な部分があります。各ラベルはデフォルトのbackcolor = color.lightblueで初期化されています。 入力状態の緑(ON)と赤(OFF)に応じて、各ラベルのバックカラーを変更する必要があります。
私は次のコードで1つのラベルの背景色を変更するために管理している:
Dim test As Label = CType(IO_ScanPanel.Controls("OnOff_000"), Label)
test.BackColor = Color.Red
しかし、どのように私は、ラベルは次のコードを使用して作成されている他のすべてのラベル
で簡単にこれを行うことができます。
Private Function InsertControls_InputsLabels(ByVal StartAdrs As Integer, ByVal EndAdrs As Integer, ByVal LocX As Integer, ByVal LocY As Integer) As String()
Dim NumberOfElements As Integer = 0
Dim Coordinates(1) As String
Do Until StartAdrs > EndAdrs
Do Until NumberOfElements > 15
Dim On_OffInput As Label = New Label()
On_OffInput.AutoSize = False
On_OffInput.Size = New Size(36, 15)
On_OffInput.TextAlign = ContentAlignment.MiddleCenter
On_OffInput.Location = New Point(LocX, LocY)
If NumberOfElements < 10 Then
On_OffInput.Text = StartAdrs & ".0" & NumberOfElements
On_OffInput.Name = "OnOff_" & StartAdrs & "0" & NumberOfElements
Else
On_OffInput.Text = StartAdrs & "." & NumberOfElements
On_OffInput.Name = "OnOff_" & StartAdrs & NumberOfElements
End If
On_OffInput.BorderStyle = BorderStyle.Fixed3D
On_OffInput.BackColor = Color.LightBlue
IO_ScanPanel.Controls.Add(On_OffInput)
LocX = LocX + 32
NumberOfElements = NumberOfElements + 1
Loop
NumberOfElements = 0
LocY = LocY + 25
LocX = 7
StartAdrs = StartAdrs + 1
Loop
Coordinates(0) = LocX
Coordinates(1) = LocY
Return Coordinates
End Function
誰かがこの問題を私に助けてくれることを願っています。
ありがとうございます。
ホールドリストまたは多分キーがそれらの一つのようなものである辞書に格納することで、それらを参照するにアドレス – Plutonix