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键,或者如果您想查看方法的有效重载,请查阅。谢谢,从现在起我一定会使用它。:)