在我的第一个表单中,他们是一个名为lbltitle
的标签,用于显示标题,我根据登录的用户更改了颜色。以下是选择颜色的代码: -
Dim n As Integer = Len(userId) Mod 3
Dim lblcolor As Color
Select Case n
Case 0 : lblcolor = Color.Blue
Case 1 : lblcolor = Color.BlueViolet
Case 2 : lblcolor = Color.Red
End Select
lbltitle.ForeColor = lblcolor
我在userId长度的基础上改变颜色。
我在模块操作中使用随机数而不是3来扩展代码,然后我的代码将更改为:
Dim random_no As Random = New Random(2)
Dim n As Integer = Len(userId) Mod random_no.Next
Dim lblcolor As Color
Select Case n
Case 0 : lblcolor = Color.Blue
Case 1 : lblcolor = Color.BlueViolet
Case 2 : lblcolor = Color.Red
Case 3 : lblcolor = Color.AliceBlue
Case 4 : lblcolor = Color.DarkGoldenrod
End Select
lbltitle.ForeColor = lblcolor
我的问题是,他们是否有可能为此生成随机颜色?
答案 0 :(得分:3)
使用以下代码替换您的选择案例和随机数
Dim rand As New Random
lbltitle.ForeColor = Color.FromArgb(rand.Next(0, 256), rand.Next(0, 256), rand.Next(0, 256))
答案 1 :(得分:0)
以下是基于BackColor设置ForeColor的两种选择。该示例循环显示已知颜色
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
'all KnownColors
Dim allColors As List(Of Color) = (From ac In [Enum].GetValues(GetType(KnownColor))
Select Color.FromKnownColor(DirectCast(ac, KnownColor))).ToList
For Each c As Color In allColors
Label1.BackColor = c 'try every color as BackColor
''alternative 1
' ''ForeColor is inverted BackColor
''Dim R As Integer = Not c.R
''Dim G As Integer = Not c.G
''Dim B As Integer = Not c.B
''Label1.ForeColor = Color.FromArgb(Label1.BackColor.A, R, G, B)
'alternative 2
Dim R As Integer = c.R
Dim G As Integer = c.G
Dim B As Integer = c.B
If (R * R + G * G + B * B) < 128 * 128 Then
Label1.ForeColor = Color.White
Else
Label1.ForeColor = Color.Black
End If
Label1.Refresh()
Threading.Thread.Sleep(50)
Next
End Sub
答案 2 :(得分:0)
您可以在随机点击颜色时使用按钮
Public Class Form1
Dim rnd As New Random
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.lbltitle.foreColor = Color.FromArgb(255, rnd.Next(255), rnd.Next(255), rnd.Next(255))
End Sub
End Class