Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 禁用密码文本框Caps Lock已打开警告_Vb.net_Winforms_Textbox_Tooltip_Capslock - Fatal编程技术网

Vb.net 禁用密码文本框Caps Lock已打开警告

Vb.net 禁用密码文本框Caps Lock已打开警告,vb.net,winforms,textbox,tooltip,capslock,Vb.net,Winforms,Textbox,Tooltip,Capslock,我正在创建一个登录东西,我有一个问题,每次我点击这个“显示密码”按钮,大写锁定被激活,一个警告弹出,不会离开(至少我认为不会,这对最终用户来说会更糟) 我想彻底摆脱这个警告 在将我的问题重定向到此问题之前: 我已经试过了 Private Sub ShowPassword_MouseDown(sender As Object, e As MouseEventArgs) Handles ShowPassword.MouseDown If txt_Password.Text <>

我正在创建一个登录东西,我有一个问题,每次我点击这个“显示密码”按钮,大写锁定被激活,一个警告弹出,不会离开(至少我认为不会,这对最终用户来说会更糟)

我想彻底摆脱这个警告

在将我的问题重定向到此问题之前:

我已经试过了

Private Sub ShowPassword_MouseDown(sender As Object, e As MouseEventArgs) Handles ShowPassword.MouseDown
    If txt_Password.Text <> "" Then
        txt_Password.UseSystemPasswordChar = False

    End If
End Sub
Private Sub ShowPassword_MouseUp(sender As Object, e As MouseEventArgs) Handles ShowPassword.MouseUp
    If txt_Password.Text <> "" Then
        txt_Password.UseSystemPasswordChar = True
    End If
End Sub
Private Sub ShowPassword\u MouseDown(发送方作为对象,e作为MouseEventArgs)处理ShowPassword.MouseDown
如果为txt_Password.Text“”,则
txt_Password.UseSystemPasswordChar=False
如果结束
端接头
私有子ShowPassword\u MouseUp(发送方作为对象,e作为MouseEventArgs)处理ShowPassword.MouseUp
如果为txt_Password.Text“”,则
txt_Password.UseSystemPasswordChar=True
如果结束
端接头
警告应该消失。
希望这个问题能帮助其他人,而不仅仅是我。 编辑:谢谢吉米D当您执行此操作时:

[TextBox].UseSystemPasswordChar = [Bool Value]
每次()都会重新创建控件的句柄

TextBox.Text
值更改时,将立即显示新控制手柄的baloon工具提示:工具提示将堆积起来

一个简单的解决方法-因为禁用警告可能不是一个好的选择-是在
Show Password
按钮的
MouseDown
处理程序中将属性设置为
Char.MinValue
Nothing
,然后将其设置回
MouseUp
上的上一个值。这不会重新创建控制柄(),并且可以按Caps Lock键禁用引出序号工具提示

在设计器中将
UseSystemPasswordChar
设置为
False

表单中。加载
txt\u密码。输入
txt\u密码。密码char=ChrW(&H25CF)


执行此操作时:
UseSystemPasswordChar=[Bool Value]
,将重新创建控件的句柄。将显示新控件句柄的baloon工具提示。如果重新启用UseSystemPasswordChar,那么是否有方法除去该控件中的气球@JimiWell,有办法。我可以给你展示一个简单的实现方法。@Jimi,那太棒了!现在“显示密码”按钮不起作用:无论是否有if。请按照过程说明进行操作。首先禁用
UseSystemPasswordChar
UseSystemPasswordChar。在设计器中,UseSystemPasswordChar已设置为false,但在单击按钮时仍不显示密码。但是我注意到了气球工具提示的变化。那么,你还没有正确地实现它。用您修改的代码更新您的问题。请记住在
窗体上设置
txt\u Password.PasswordChar=ChrW(&H25CF)
。加载
并查看您的按钮是否实际触发了
MouseDown
MouseUp
事件,引用了正确的文本框名称。没有问题。当您修改现有代码时,总是会发生这种情况。重要的是你让它工作:)
Private Sub ShowPassword_MouseDown(sender As Object, e As MouseEventArgs) Handles ShowPassword.MouseDown
    txt_Password.PasswordChar = Char.MinValue
End Sub

Private Sub ShowPassword_MouseUp(sender As Object, e As MouseEventArgs) Handles ShowPassword.MouseUp
    txt_Password.PasswordChar = ChrW(&H25CF)
End Sub