для л oop через 5 текстовых полей - PullRequest
0 голосов
/ 09 апреля 2020

Я создал GUI с 5 текстовыми полями. Я называю их $ textboxHost1 - 5. Теперь у меня есть массив, в котором я собираюсь сохранить до 5 значений, а затем записать каждое значение в соответствии с порядком в текстовые поля. Первое значение в массиве должно быть записано в первое поле $ textboxHost1.

Для этого я хотел бы сделать для l oop и записать этот код

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

Теперь я ищу способ go вниз по порядку, чтобы первый $ textboxHost1 был первым и так далее.

Чтобы быть точным, переменная $ textboxHost должна постепенно увеличиваться в l oop, и значения в позиции $ i в массиве должны быть записаны в это текстовое поле. что-то вроде

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

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Полагаю, вам понравится что-то вроде этого?

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

После этого вы можете обработать эту переменную, например, с помощью. foreach:

foreach ($textboxHost in $textboxHosts) {<# Do some stuff #>}
0 голосов
/ 09 апреля 2020

Вы должны использовать массив, потому что иначе вы не сможете l oop через них:

$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 = 
}
...