PowerShell WinForms中设置TextBox必填项并添加提示
解决方案:PowerShell WinForms中实现PUID文本框必填校验
直接在按钮的点击事件里做校验就行,Mandatory参数是给控制台函数用的,不适合WinForms界面场景,所以之前的方法只会让控制台等待输入,不会触发界面提示。
实现逻辑:
- 在按钮的点击事件处理代码开头,先判断PUID文本框的内容是否为空或仅包含空白字符
- 如果不符合要求,用弹窗提示用户填写,同时让光标回到PUID文本框,然后终止后续逻辑
- 校验通过后再执行原本的「Verify Legacy Apps Removed」功能
以下是完整示例代码:
# 加载WinForms程序集 Add-Type -AssemblyName System.Windows.Forms # 创建主窗体 $mainForm = New-Object System.Windows.Forms.Form $mainForm.Text = "Legacy App Verification" $mainForm.Size = New-Object System.Drawing.Size(400, 200) $mainForm.StartPosition = "CenterScreen" # 创建PUID标签和文本框 $puidLabel = New-Object System.Windows.Forms.Label $puidLabel.Text = "PUID:" $puidLabel.Location = New-Object System.Drawing.Point(20, 30) $puidLabel.AutoSize = $true $puidTextBox = New-Object System.Windows.Forms.TextBox $puidTextBox.Location = New-Object System.Drawing.Point(80, 28) $puidTextBox.Size = New-Object System.Drawing.Size(280, 20) # 创建验证按钮 $verifyBtn = New-Object System.Windows.Forms.Button $verifyBtn.Text = "Verify Legacy Apps Removed" $verifyBtn.Location = New-Object System.Drawing.Point(120, 80) $verifyBtn.Size = New-Object System.Drawing.Size(160, 30) # 按钮点击事件处理 $verifyBtn.Add_Click({ # 校验PUID是否为空 if ([string]::IsNullOrWhiteSpace($puidTextBox.Text)) { [System.Windows.Forms.MessageBox]::Show("请填写PUID字段!", "提示", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Warning) $puidTextBox.Focus() # 自动聚焦到PUID文本框,方便用户输入 return # 终止后续验证逻辑 } # 校验通过后,执行原有验证逻辑 Write-Host "开始验证PUID: $($puidTextBox.Text)" # 这里替换成你原本的「Verify Legacy Apps Removed」功能代码 [System.Windows.Forms.MessageBox]::Show("PUID $($puidTextBox.Text) 验证完成!", "结果") }) # 将控件添加到窗体 $mainForm.Controls.Add($puidLabel) $mainForm.Controls.Add($puidTextBox) $mainForm.Controls.Add($verifyBtn) # 显示窗体 $mainForm.ShowDialog() | Out-Null
这段代码里,点击按钮时会先检查PUID文本框内容,为空就弹出提示并聚焦到文本框,不会执行后续验证逻辑;输入有效内容后才会走正常的验证流程。
内容的提问来源于stack exchange,提问作者user330183
相关产品推荐
相关产品推荐

