vb6 - 在 Visual Basic 6 中为标签生成随机非重复颜色
问题描述
我想在 8 种不同颜色之间调用随机颜色,并将其显示在标签中作为 Visual Basic 中的背景色。如何在不重复特定标签上已标注的颜色的情况下显示颜色?
例如,如果在labelA1中调出红色并显示,如何确保在labelB1,labelC1或labelD1中不会调出并显示红色,而在labelA13或labelB16中可以调出红色?
下面是一张图片,可以帮助理解上面的例子。
解决方案
使用此代码制作颜色列表,然后在每次使用时将它们从列表中删除。
Private Function RandomizeLabelColors() As Integer
Randomize()
Dim listOfColors As List(Of Color) = {Color.Red, Color.Blue, Color.Green, Color.Orange}.ToList
Dim labels As List(Of Label) = {Label1, Label2, Label3, Label4, Label5, Label6, Label7, Label8,
Label9, Label10, Label11, Label12, Label13, Label14, Label15, Label16}.ToList
Dim i As Integer = 0
Do Until listOfColors.Count = 0
Dim targetIndex As Integer = Int(Rnd() * listOfColors.Count)
labels(i).BackColor = listOfColors(targetIndex)
labels(i + 4).BackColor = listOfColors(targetIndex)
labels(i + 8).BackColor = listOfColors(targetIndex)
labels(i + 12).BackColor = listOfColors(targetIndex)
listOfColors.RemoveAt(targetIndex)
i += 1
Loop
Return 0
End Function
我的标签在 4x4 网格中。
-镁
推荐阅读
- python - 在 Python 中使用 reg exp
- python - cx_Freeze 未正确将 python 程序转换为可执行文件
- javascript - 在 nativescript 中使用 tap 函数传递参数
- scala - 修复“在没有匹配数量的 createTmpFiles() 调用 jobId 的情况下不正确使用 releaseJob()”Flink
- php - Laravel 中的手动多重身份验证
- javascript - 如何将多个对象合并为一个?
- php - PHP命令行字符串添加
- python - 使用 Python 进行有效的滚动修剪均值
- python - 用张量流求解函数方程
- laravel-5 - 在 `AppServiceProvider` 类中使用 auth('api')->user() 时返回 null