PowerShell中TextBox输入无法生效问题求助
问题原因与解决方法
你的问题出在变量赋值时机错误:
- 你在窗体刚创建、文本框还未接收用户输入时,就把
$objTextBox.Text和$objTextBox2.Text赋值给了$INT1、$Serial1,此时这两个变量存储的是空值。 - 点击OK按钮时,事件逻辑里调用的还是这个初始空变量,完全没读取用户后续输入的内容。
解决步骤
把读取文本框内容的代码移到OK按钮的点击事件脚本块内部,这样每次点击按钮时才会获取用户最新输入的值:
修改后的关键代码片段
# OK Button $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Size(100,175) $OKButton.Size = New-Object System.Drawing.Size(75,23) $OKButton.Text = "OK" $OKButton.Name = "OK" #$OKButton.DialogResult = "OK" $OKButton.Add_Click({ # 点击按钮时才读取用户输入的最新内容 $INT1 = $objTextBox.Text $Serial1 = $objTextBox2.Text Invoke-WebRequest -Uri http://CENSORED.crl -OutFile crl.crl $test=certutil.exe -dump crl.crl | Out-String -stream | Select-String -pattern "$Serial1" -Context 0,1 [void] [Windows.Forms.MessageBox]::Show($test) }) $objForm.Controls.Add($OKButton)
额外说明:你定义的$INT1在当前代码中未被使用,若后续需要调用该变量,也要采用同样方式在点击事件内获取值。
内容的提问来源于stack exchange,提问作者J0nsan
相关产品推荐
相关产品推荐

