我在登录表单的密码文本框中遇到问题。我希望它比其他的更为精确,这是我想知道的:
我将在文本框中输入单词“ password”,如果我输入第一个字母“ p”,我看到它是字母p,那么如果我输入第二个字母“ a”,则字母“ p”现在变成“ *”,而第二个字母也可以看作是“ a”,然后一直到单词“ password”变成“ ******* d”。然后,如果我离开该文本框,其余字母也将变为“ *”。我试图转到属性并查找密码字符,但它不能满足我的需求。我怎样才能做到这一点 ?
在这里,我基于Textbox控件的KEY_UP和LEAVE事件为您创建一个简单的示例。
使用此代码,您还需要一些其他工作来使其完美无缺,例如:
忽略不是字母数字的键和特殊字符,例如KEY_UP上的(退格键,Enter,Shift,Enter和...)
测试并享受.... ;)
private void txtxPassword_KeyUp(object sender, KeyEventArgs e)
{
var pass = txtxPassword.Text;
if (pass.Length < 1)
realPass = string.Empty;
else
realPass += pass[pass.Length - 1];
if (e.KeyCode == Keys.Back)
{
if (realPass.Length <= 1)
realPass = "";
else
{
realPass = realPass.Substring(0, realPass.Length - 2);
}
}
string result = "";
if (realPass != string.Empty)
{
for (var i = 0; i < realPass.Length - 1; i++)
{
result += "X";
}
result += realPass[realPass.Length - 1];
}
txtxPassword.Text = result;
txtxPassword.SelectionStart = result.Length;
lblpass.Text = realPass;
}
private void txtxPassword_Leave(object sender, EventArgs e)
{
string result="";
for (var i = 0; i < realPass.Length ; i++)
{
result += "X";
}
txtxPassword.Text = result;
lblpass.Text = realPass;
}
结果:
............................................. ..... .........................................................
编辑
您必须将RealPassword保留在变量中。当您更改textbox.text时,您的RealPassword将被新字符丢失。所以我declear一个名为变量realPass以保持实际插入密码。它必须是您班上的普通杂技演员,如下所示:
private string realPass="";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句