2

含まれているテキストをマスクTextBoxする操作がある があります。CheckBoxこれは、次のコードで機能します。

Private Sub CheckBox2_Checked(ByVal sender As Object, ByVal e As EventArgs) Handles CheckBox2.CheckedChanged
    TextBox14.PasswordChar = "*"
End Sub

それはうまく機能しますが、チェックを外してCheckBox認識可能なテキストを返すこともできるようにしたいと考えています。どうすればこれを達成できますか?

4

3 に答える 3

2

PasswordChar次のように、プロパティを null 文字に戻すだけでこれを行うことができます。

Private Sub CheckBox2_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs) Handles CheckBox2.CheckedChanged
    If CheckBox2.Checked Then
        TextBox14.PasswordChar = "*"c
    Else
        TextBox14.PasswordChar = ControlChars.NullChar
    End If
End Sub

プロパティが変更CheckedChangedされるたびにイベントが発生します。Checkedしたがって、ユーザーが のCheckBoxチェックを外すと、そのイベントも発生するため、コントロールが現在チェックされているかどうかを確認する必要があります。

于 2013-01-22T14:35:00.350 に答える
2

docos は実際に次のように述べています。

単一行の TextBox コントロールに入力された文字をマスクするために使用される文字。入力時にコントロールで文字をマスクしない場合は、このプロパティの値を 0 (文字値) に設定します。デフォルトでは 0 (文字値) です。

ここにあります: http://msdn.microsoft.com/en-us/library/system.windows.forms.textbox.passwordchar(v=vs.110).aspx

PasswordCharVB.NET では、 に設定するのが最も簡単vbNullCharです。

于 2013-01-22T14:39:43.213 に答える
0

パスワードの文字を切り替えるだけでは不十分であることがわかりました。私の場合、接続文字列をマスキングしていました。テキストにスペースが不足しているため、前後に問題が発生しました。テキストが途切れてしまい、適切に折り返されませんでした。

Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs)
    Dim beforeText As String = TextBox1.Text

    TextBox1.Text = ""
    TextBox1.PasswordChar = IIf(CheckBox1.Checked, Convert.ToChar(0), "*"c)
    TextBox1.Text = beforeText
End Sub

Console のようなフォントを使用した場合、すべての文字幅が一定であるため、これは問題にならないと思います。

于 2014-10-28T14:27:18.490 に答える