VB. NET Ссылка ярлыка на другой ярлык - PullRequest
1 голос
/ 18 апреля 2020

Я новичок в VB. NET, а также самоучка, поэтому в основном я ничего не знаю. Я написал некоторое программное обеспечение (~ 2000 строк), оно довольно основательно c. Однако многие из этих строк просто меняют разные метки (на разных вкладках), когда пользователь делает разные вещи.

Я считаю модифицирующие метки очень раздражающими, в основном, когда у меня 3-4 метки, которые всегда показывают одинаковые вещь, но в разных местах. Я провел некоторый поиск, связанный с попыткой связать или связать эти ярлыки, но я не думаю, что нашел то, что искал. Я уверен, что я ищу неправильную терминологию или что-то очень простое.

Мой вопрос таков: существует ли простой способ связать ярлыки вместе, поэтому мне нужно только изменить текст / цвет на одной этикетке, а другие «связанные» ярлыки следуют их примеру?

Ниже приведен фрагмент того, что я пытаюсь упростить.

            lblStatus.Text = "Connected to transmitter!"
            lblStatus.BackColor = Color.Green
            lblStatus.ForeColor = Color.White
            lblRadioStatus.Text = "Connected to transmitter!"
            lblRadioStatus.BackColor = Color.Green
            lblRadioStatus.ForeColor = Color.White
            lblStatusRec.Text = "Connected to transmitter!"
            lblStatusRec.BackColor = Color.Green
            lblStatusRec.ForeColor = Color.White
            lblRadioSetup.Text = "Connected to transmitter!"
            lblRadioSetup.BackColor = Color.Green
            lblRadioSetup.ForeColor = Color.White

Эти ярлыки всегда отображаются одинаково, но отображаются на разных вкладках. Должен быть лучший способ.

1 Ответ

2 голосов
/ 18 апреля 2020

Вы можете создать массив меток, объявленных на уровне формы, а затем заполнить этот массив после вызова InitializeComponent метками, которые вы хотите изменить.

Затем напишите метод, который зацикливается на массиве, и изменить все метки с вашими значениями.

Например:

Public Class Form1
    Dim myLabels() As Label
    Public Sub New()
        InitializeComponent()
        myLabels = New Label() {lblStatus, lblStatusRec, lblRadioStatus, lblRadioSetup};
    End Sub

    Private Sub UpdateLabel(labelText As String, fore As Color, back As Color)
       For Each lbl In myLabels
            l.Text = labelText
            l.BackColor = back
            l.ForeColor = fore
       Next

    End Sub
End Class

Теперь каждый раз, когда вам нужно изменить эти метки, вы вызываете метод UpdateLabel с необходимыми параметрами.

...