当光标悬停在Winform中的图标上时如何显示密码文本框值

时间:2019-07-07 12:05:57

标签: c# winforms textbox

我正在使用winforms创建一个C#应用程序。现在,我想在密码Icon旁边加一个小眼睛textbox,以便当用户将鼠标悬停在Icon上时,可以看到到目前为止输入的内容。因此,在悬停时,textbox应该显示123,并且当用户离开该图标时,该框应该再次显示为***。有没有办法用C#来做到这一点?

3 个答案:

答案 0 :(得分:5)

textBox.UseSystemPasswordChar = true;
icon.MouseEnter += (sender, e) => textBox.UseSystemPasswordChar = false;
icon.MouseLeave += (sender, e) => textBox.UseSystemPasswordChar = true;

enter image description here

答案 1 :(得分:1)

在悬停事件上使用:

推荐-使用if条件验证悬浮是否调用并根据操作将UseSystemPasswordChar属性设置为truefalse

//hover condition
if() {   
   textBox1.UseSystemPasswordChar = False;
} else {
   textBox1.UseSystemPasswordChar = True;
}

textBox1.PasswordChar = '\0';

UseSystemPasswordChar属性的优先级高于PasswordChar属性。每当UseSystemPasswordChar设置为true时,将使用默认的系统密码字符,而忽略由PasswordChar设置的任何字符。-Source

更多解决方案可以在here

找到

.Net Framework 4.8官方文档:

UseSystemPasswordChar-This Link

PasswordChar-This link(未屏蔽的文本框)

MaskedTextBox.PasswordChar-This link

答案 2 :(得分:0)

在图标上的悬停事件中,您需要将TextBox的PasswordChar属性更改为char.MinValue 像这样:

textBox1.PasswordChar = char.MinValue;

然后,如果用户留下图标,请再次更改此属性

textBox1.PasswordChar = '*';