C# Powershell动态GUI

C# Powershell动态GUI,c#,winforms,powershell,powershell-2.0,C#,Winforms,Powershell,Powershell 2.0,我正在powershell中构建动态GUI,但遇到一些问题 对象是基于当前目录中的文件夹创建的 $i = 0 $arrbuttons | %{ $_.add_Click({$arrboxes[$i].Text = "hello"}) $i++ } 所有我的按钮都位于$arrbuttons数组中,所有我的文本框都位于$arrboxs数组中 如果我将$i设置为0,并且在最后不进行加法,则一切正常,但文本始终位于第一个文本框中,对吗?但是当我在最后添加时,我得到一个异常,说找不到属性文本 我试图实

我正在powershell中构建动态GUI,但遇到一些问题 对象是基于当前目录中的文件夹创建的

$i = 0 
$arrbuttons | %{
$_.add_Click({$arrboxes[$i].Text = "hello"})
$i++
}
所有我的按钮都位于$arrbuttons数组中,所有我的文本框都位于$arrboxs数组中 如果我将$i设置为0,并且在最后不进行加法,则一切正常,但文本始终位于第一个文本框中,对吗?但是当我在最后添加时,我得到一个异常,说找不到属性文本

我试图实现的是,在构建一个包含按钮文本框和每行秒表的动态GUI的过程中,这只是一个小问题,但我不确定如何动态创建秒表,并让脚本了解在按下单个按钮时停止和启动哪个秒表

文本框,开始,停止,重置

文本框,开始,停止,重置


当按下“开始”按钮时,文本框会显示“滴答”之类的信息;当按下“停止”按钮时,经过的时间会显示在正确的文本框中

以下是我的建议:

0..($arrbuttons.count) | % {
  $arrbuttons.item($_).add_Click({$arrboxes.item($_).Text = "hello"}.getclosure())
}
我在PS中有一个Windows窗体应用程序,我必须使用item()方法访问工具栏中的按钮。如果您的情况需要数组索引,请将
.item($\u)
替换为
[$\u]

注意必要的方法调用
getclosure()
,以便调用add\u click时的$值“保留”到GUI显示为止。否则,当GUI显示时,只有索引值恰好为$i(显然为0)的框才会获得其文本成员集