Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >迭代几个GUI元素

我有一个基于图形用户界面的表单上有一系列的字段,并希望更新相应的标签,当文本输入到一个字段。我已经能够使用下面的代码让它工作

代码语言:javascript
运行
AI代码解释
复制
$objTextBoxRD1.add_keyup({$objLabelLU1.Text = Get-Date})
$objTextBoxRD2.add_keyup({$objLabelLU2.Text = Get-Date})
$objTextBoxRD3.add_keyup({$objLabelLU3.Text = Get-Date})
$objTextBoxRD4.add_keyup({$objLabelLU4.Text = Get-Date})

有没有更优雅的方法来达到同样的效果?

我尝试了以下操作,但当我在任何$objTextBoxRD字段中输入文本时,它只会更新$objLabelU4

代码语言:javascript
运行
AI代码解释
复制
$Count = 1
foreach ($User in $ISDept) {
    $objTextBoxRD = Get-Variable -Name ('objTextBoxRD' + ([string]$Count)) | Select -Expand Value
    $objLabelLU = Get-Variable -Name ('objLabelLU' + ([string]$Count)) | Select -Expand Value

    $objTextBoxRD.add_keyup({$objLabelLU.Text = Get-Date})
    $Count++
}

$objTextBoxRD$objLabelLU变量是从数组中生成的,由于创建的变量数量可能不同,因此希望自动执行这一部分。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-05 10:52:37

将textbox元素收集到数组中,而不是使用单个变量,因此可以使用for循环遍历这些元素。由于您希望在scriptblock中使用相应的变量,因此可能需要生成该scriptblock。试试这个:

代码语言:javascript
运行
AI代码解释
复制
for ($i=0; $i -lt $objTextBoxRD.Count; $i++) {
    $sb = [scriptblock]::Create("`$objLabelLU$($i+1).Text = Get-Date")
    $objTextBoxRD[$i].Add_Keyup($sb)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44923955

复制
相关文章

相似问题

添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档