Member 13010705 Ответов: 1

Изменение цвета задней части текстового поля


Привет всем, я построил простую форму для использования в качестве штатного расписания. С помощью txt-полей можно представить месячный день каждого сотрудника. Это 3-х сменная система. Я хочу, чтобы цвет координировал сдвиги в три разных цвета. как только происходит щелчок по текстовому полю, я хочу изменить цвет с одного на следующий цвет из трех ... например, 6-2 shift-это красный цвет, 2-10 shift-зеленый и 10-6-темно-синий. Он должен заранее составить график работы персонала на предстоящий месяц с помощью быстрого и легкого цветового кодирования по щелчку текстового поля.
Есть ли у кого-нибудь какие-либо предложения по этому поводу?

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

Ни один на сегодняшний день не пробовал только по одному текстовому ящику у меня есть несколько вариантов для изменения

CHill60

В чем проблема с применением backcolor к более чем 1 текстовому полю?

1 Ответов

Рейтинг:
9

Ralf Meier

Решением будет индивидуальный контроль с желаемым поведением.
Это также может быть метка, если вы хотите работать с фиксированным текстом.

например :

Public Class ShiftLabel
    Inherits Label

    Public Sub New()
        Me.AutoSize = False
        Me.TextAlign = ContentAlignment.MiddleCenter
        Me.Invalidate()
    End Sub

    Private myCounter As Integer = 1

    Protected Overrides Sub OnClick(e As EventArgs)
        myCounter += 1
        If myCounter > 3 Then myCounter = 1
        Me.Invalidate()

        MyBase.OnClick(e)
    End Sub

    Protected Overrides Sub OnInvalidated(e As InvalidateEventArgs)
        Select Case myCounter
            Case 1
                Me.Text = "Shift 1"
                Me.BackColor = Color.Red
                Me.ForeColor = Color.Yellow
            Case 2
                Me.Text = "Shift 2"
                Me.BackColor = Color.Green
                Me.ForeColor = Color.Yellow
            Case 3
                Me.Text = "Night-Shift"
                Me.BackColor = Color.DarkBlue
                Me.ForeColor = Color.White
        End Select

        MyBase.OnInvalidated(e)
    End Sub
End Class