我正在尝试制作彩色玻璃窗。我选择 8 种颜色添加到每个要绘制的矩形和线条上。将随机选择颜色以填充每个模拟的矩形/线条。
Dim cbColorsInit As New List(Of Color) With {Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.Black, Color.White, Color.Cyan, Color.Magenta}
Dim cbControls As New List(Of CheckBox)
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
addRed(CheckBox1)
addGreen(CheckBox2)
addBlue(CheckBox3)
addYellow(CheckBox4)
addBlack(CheckBox5)
addWhite(CheckBox6)
addCyan(CheckBox7)
addMagenta(CheckBox8)
End Sub
Private Sub addRed(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addGreen(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addBlue(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addYellow(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addBlack(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addWhite(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addCyan(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Private Sub addMagenta(ByVal cb As CheckBox)
cbControls.Add(cb)
cbControls(cbControls.Count - 1).Tag = cbControls.Count - 1
End Sub
Dim ran As New Random
Private Function GetRandomColor() As Color
Dim chkd As List(Of CheckBox) = cbControls.Where(Function(c) c.Checked).ToList
Dim rv As Color
If chkd.Count > 0 Then
Dim rndnum As Integer = ran.Next(chkd(rndnum).Tag)
rv = cbColorsInit()
Else
Stop
End If
Return rv
End Function
这就是我在上面的图像中编码的方式,希望我能就我的问题提供足够的信息。我真的不明白为什么我不断收到错误。