我正在使用Windows窗体制作GUI,我想添加一个功能,您可以随机化窗体的背景颜色。请注意,我打算将代码完整地写在Powershell中。
以下是代码片段:
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$objForm = New-Object System.Windows.Forms.Form
$choochoo = New-Object System.Windows.Forms.Button
以下是我需要帮助的代码:
$choochoo.Add_Click({$objForm.BackColor = Random})
显然,“随机”在此示例中不起作用,仅用作占位符。
我想我需要使用时间生成随机值,但会欣赏更具体的代码。提前谢谢。
答案 0 :(得分:0)
您希望使用System.Random
的实例从System.Drawing.Color
的可能静态属性中进行选择。
答案 1 :(得分:0)
如果有人需要,也可以使用它:
function RandomBacklight {`
$random = New-Object System.Random
switch ($random.Next(9)) {
0 {$objForm.BackColor = "LightBlue"}
1 {$objForm.BackColor = "LightGreen"}
2 {$objForm.BackColor = "LightPink"}
3 {$objForm.BackColor = "Yellow"}
4 {$objForm.BackColor = "Orange"}
5 {$objForm.BackColor = "Brown"}
6 {$objForm.BackColor = "Magenta"}
7 {$objForm.BackColor = "White"}
8 {$objForm.BackColor = "Gray"}
}
}
$choochoo.Add_Click({RandomBacklight})
答案 2 :(得分:0)
最近在学习Powershell。如果有人想要做所有可能的随机颜色(我知道这个线程已经老了),那么今天就可以找到解决方案。
Add-Type -AssemblyName System.Windows.Forms
$Form = New-Object system.Windows.Forms.Form
$Form.Text = "Sample Form"
$Label = New-Object System.Windows.Forms.Label
$Label.Text = "This is a Form."
$Form.Controls.Add($Label)
function colorful{
$c1 = '';
$c2 = '';
foreach( $digit in (1..6 | foreach{ '{0:X}' -f (Get-Random -Max 16) })){
$c1 = "$c1"+"$digit";}
foreach( $digit in (1..6 | foreach{ '{0:X}' -f (Get-Random -Max 16) })){
$c2 = "$c2"+"$digit";}
$Form.BackColor = "#FF"+$c1;
$Form.ForeColor = "#FF"+$c2;
};
colorful;
$Form.ShowDialog();