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