Powershell 使用get random设置argb时出错
我试图给一个面板的背景色一个随机的颜色Powershell 使用get random设置argb时出错,powershell,Powershell,我试图给一个面板的背景色一个随机的颜色 $rndm1 = Get-Random -minimum 50 -maximum 240 $rndm2 = Get-Random -minimum 50 -maximum 240 $rndm3 = Get-Random -minimum 50 -maximum 240 这显然有效: $pBar.BackColor = [System.Drawing.color]::FromArgb(60,60,60) 但使用随机数不会: $rndmResult = (
$rndm1 = Get-Random -minimum 50 -maximum 240
$rndm2 = Get-Random -minimum 50 -maximum 240
$rndm3 = Get-Random -minimum 50 -maximum 240
这显然有效:
$pBar.BackColor = [System.Drawing.color]::FromArgb(60,60,60)
但使用随机数不会:
$rndmResult = ("'" + $rndm1 + ',' + $rndm2 + ',' + $rndm3 + "'")
$pBar.BackColor = [System.Drawing.color]::FromArgb($rndmResult)
我已经用很多不同的方法编写了这些代码,但似乎没有一种是有效的。我也尝试过这样写$rndm
变量$rndm1=(“'”+(Get Random-minimum 50-maximum 240)+“”)——但我无法回避它。我做错了什么?错误输出为:
错误:无法将值为“'117,56167'”的参数“argb”转换为类型“System.Int32”:“无法将值“'117,56167'”转换为类型“System.Int32”。
或
错误:无法将值“”转换为类型“System.Int32”。错误:“输入字符串的格式无效。”
取决于我如何放置“
和”
Powershell studio 2016在这里,您要传递3个不同的整数:
$pBar.BackColor = [System.Drawing.color]::FromArgb(60,60,60)
这里,您正在传递一个字符串:
$rndmResult = ("'" + $rndm1 + ',' + $rndm2 + ',' + $rndm3 + "'")
$pBar.BackColor = [System.Drawing.color]::FromArgb($rndmResult)
而是直接传递整数:
$pBar.BackColor = [System.Drawing.color]::FromArgb($rndm1,$rndm2,$rndm3)
这里,您要传递3个不同的整数:
$pBar.BackColor = [System.Drawing.color]::FromArgb(60,60,60)
这里,您正在传递一个字符串:
$rndmResult = ("'" + $rndm1 + ',' + $rndm2 + ',' + $rndm3 + "'")
$pBar.BackColor = [System.Drawing.color]::FromArgb($rndmResult)
而是直接传递整数:
$pBar.BackColor = [System.Drawing.color]::FromArgb($rndm1,$rndm2,$rndm3)
在此步骤中:
$rndmResult = ("'" + $rndm1 + ',' + $rndm2 + ',' + $rndm3 + "'")
创建字符串'156,93194'
(假设随机生成数字156、93和194)
FromArgb()
没有以单个字符串作为参数的重载
将值直接传递给functino:
[System.Drawing.color]::FromArgb($rndm1,$rndm2,$rndm3)
在此步骤中:
$rndmResult = ("'" + $rndm1 + ',' + $rndm2 + ',' + $rndm3 + "'")
创建字符串'156,93194'
(假设随机生成数字156、93和194)
FromArgb()
没有以单个字符串作为参数的重载
将值直接传递给functino:
[System.Drawing.color]::FromArgb($rndm1,$rndm2,$rndm3)
[System.Drawing.color]::FromArgb($rndm1,$rndm2,$rndm3)
工作正常[System.Drawing.color]::FromArgb($rndm1,$rndm2,$rndm3)
工作正常,感谢您的解释。这可能是我唯一没有尝试的事情……:)再次感谢!啊,谢谢你的解释。这可能是我唯一没有尝试的事情……:)再次感谢!我不知道FromArgb()不能接受字符串作为参数,我猜这就是我失败的地方。谢谢您指出它。@Madstman供将来参考,您可以输入不带括号的方法名称(如[System.Drawing.Color]::FromArgb
),然后在提示符中按enter键,或者如果您想查看方法的有效重载,请查阅。谢谢,从现在起我一定会使用它。:)我不知道FromArgb()不能接受字符串作为参数,我猜这就是我失败的地方。谢谢您指出它。@Madstman供将来参考,您可以输入不带括号的方法名称(如[System.Drawing.Color]::FromArgb
),然后在提示符中按enter键,或者如果您想查看方法的有效重载,请查阅。谢谢,从现在起我一定会使用它。:)