for循环遍历5个文本框

for loop through 5 textboxes

我创建了一个带有 5 个文本框的 GUI。我称它们为 $textboxHost1 - 5。 现在我有一个数组,我将在其中保存最多 5 个值,然后根据顺序将每个值写入文本框。数组中的第一个值应写入第一个 $textboxHost1 框。

为此,我想制作一个 for 循环并编写了这段代码

#$hostnameneingabe: Array, in which the values are saved.
$hostnameneingabeCount = $hostnameneingabe.Count
for($i = 0; $i -le $hostnameneingabeCount; $i++) {
    #code here
}

现在,我正在寻找降低顺序的方法,以便第一个 $textboxHost1 排在最前面,依此类推。

为了准确起见,变量$textboxHost 应该在循环中递增,数组中位置$i 的值应该写入该文本框。 某事

for($i = 0; $i -le $hostnameneingabeCount; $i++) {
    $textboxHost$i = 
}

我想你会喜欢这样的东西吧?

$textboxHosts = Get-Variable | ? {$_.Name -match "textBoxHost[0-9]" -and $_.Value -ne $null} | sort Name

在此之后,您可以使用 eg 处理该变量。一个foreach:

foreach ($textboxHost in $textboxHosts) {<# Do some stuff #>}

你必须使用数组,否则你无法遍历它们:

$textboxHost = @(0..4)
#Textbox 0
$textboxHost[0] = New-Object System.Windows.Forms.TextBox
$textboxHost[0].Text = "test"

#Textbox 1
$textboxHost[1] = New-Object System.Windows.Forms.TextBox
$textboxHost[1].Text = "test"

foreach ($textbox in $textboxHost){
    #Do whatever you want with the textbox
    $textbox = 
}