在TextBox中启用密码字符,除了最后N个字符/限制屏蔽字符

时间:2013-04-17 08:05:51

标签: c# textbox

如何在TextBox中启用除最后N个字符以外的密码字符?

我已经尝试过这种方法

cardnumber.Select((c, i) => i < cardnumber.Length - 4 ? 'X' : c).ToArray()

但操作起来很难,我会​​在Keypress等每个事件中传递原始卡值, TextChange等等。

我的方式是否更简单易管理?

1 个答案:

答案 0 :(得分:4)

这应该可以解决问题,

string pw = "password1234";
char[] splitpw;
string cenpw;
int NtoShow;

splitpw = new char[pw.Length];
splitpw = pw.ToCharArray();
NtoShow = 4;
for (int i = 0; i < pw.Length; i++)
{
    if (i < pw.Length - NtoShow)
        cenpw += "*";
    else
        cenpw += splitpw[i];
}

//cenpw: "********1234"