取消屏蔽密码文本框不起作用

Unmask Password textbox not working

我有以下代码来显示带有文本框和复选框的 GUI:

Add-Type -Assembly 'System.Windows.Forms'

$form = New-Object Windows.Forms.Form

$password = New-Object Windows.Forms.MaskedTextBox
$password.PasswordChar = '*'
$form.Controls.Add($password)

$checkBox2 = New-Object System.Windows.Forms.CheckBox
$checkBox2.add_click($handler_button1_Click)
$form.Controls.Add($checkBox2)

$handler_button1_Click = {
    if ($checkBox2.Checked) {      
        $password.PasswordChar = '[=10=]' // [char][=10=] tried this too
    } else {
        $password.PasswordChar = '*'
    }
}

$form.ShowDialog()

选中复选框时,我正在取消屏蔽字符,但出现异常

Cannot convert value "[=11=]" to type "System.Char". Error: "String must be exactly one character long."

有人可以告诉我如何处理这个问题吗?

在 PowerShell 中,反斜杠不是转义字符,因此 '[=12=]' 是一个字符串,其后是文字反斜杠后跟字符“0”(ASCII 字符 48)。要获取 ASCII 字符 0,请将整数值 0 转换为字符。

$password.PasswordChar = [char]0

只需分配一个整数值 0 也可以:

$password.PasswordChar = 0