Member 13010705 Ответов: 1

Цвет задней панели управления текстовым полем


Доброе утро, у меня проблема, может ли кто-нибудь мне помочь. Я создал форму в vs2013 на Vb.net. Назначение формы - ротация сотрудников на месяц по системе с 3 сменами по 8 часов. Лицо, создающее ротацию, использует цвет задней части текстового поля каждого сотрудника для отображения смены, в которой работает сотрудник. IE .. Красный цвет задней панели - с 6:00 до 14:00, зеленый - с 14:00 до 22:00 и т. Д. Цвет меняется с помощью события щелчка, каждый щелчок при дневной смене изменяется на следующий цвет. Приведенный ниже код хорошо подходит для изменения текстовых полей на требуемый вывод. Мой вопрос ... Есть ли способ вместо копирования и вставки кода ниже в каждое событие щелчка текстового поля и редактирования текстового имени в требуемом текстовом поле, можно ли написать код один раз в классе или процедуре что будет охватывать все текстовые поля, тем самым экономя время на написание кода для всех 50 текстовых полей с лишним ????

Заранее благодарю вас за любой вклад/совет

Что я уже пробовал:

Dim Count As Integer = 5

**Код ниже представляет собой одно событие щелчка текстового поля

Частная суб txtM16_Click(отправителя как объект, а равно EventArgs) обрабатывает txtM11.Нажмите
Count = Count - 1
Если Count = 4, То
txtM16.Цвет Фона = Цвет.Красный
ElseIf Count = 3 Тогда
txtM16.Цвет Фона = Цвет.Зеленый
ElseIf Count = 2 Тогда
txtM16.Цвет Фона = Цвет.Темно-оранжевый
ElseIf Count = 1 Тогда
txtM16.Цвет Фона = Цвет.Синий
ElseIf Count = 0 Тогда
txtM16.Цвет Фона = Цвет.Белый
Количество = 5
Конец, Если
Конец Подводной Лодки

1 Ответов

Рейтинг:
9

OriginalGriff

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

Private Sub AllTextBoxes_Click(sender As Object, e As EventArgs) Handles txtM11.Click
...
    Count = Count - 1
    Dim tb As TextBox = TryCast(sender, TextBox)
    If tb IsNot Nothing Then
        If Count = 4 Then
            tb.BackColor = Color.Red
        ElseIf Count = 3 Then
            tb.BackColor = Color.Green
        ElseIf Count = 2 Then
            tb.BackColor = Color.MediumPurple
        ElseIf Count = 1 Then
            tb.BackColor = Color.Blue
        ElseIf Count = 0 Then
            tb.BackColor = Color.White
            Count = 5
        End If
    End If


Member 13010705

Спасибо вам за вашу помощь именно то, что я искал ... спасибо еще раз

OriginalGriff

Пожалуйста!