我正在使用visual studio制作应用程序,我正在制作一个Excel Addon 我想添加一个用户名和密码字段,所以我使用Editbox来做这个,但似乎没有一个passwordChar字段。
我可以使用什么或者如何隐藏文字?
我目前正在尝试将字符转换为*但速度非常慢 我也在C#工作
这是我目前的解决方案:
private void ebxPassword_KeyUp(object sender, RibbonControlEventArgs e)
{
char last = ebxPassword.Text[ebxPassword.Text.Length - 1];
passwordText += last;
ebxPassword.Text = ebxPassword.Text.Replace(last.ToString(), "*");
}
我的最终解决方案:
无法做到,没有简单的方法 因此,我没有在功能区中使用这些控件,而是添加了一个登录按钮,当单击时加载带有标准文本框的表单,这非常合适。
答案 0 :(得分:3)
对不起,迟到的答案。已经找到了谁来检查这个问题,希望将来找到解决方案..
使用这个扩展方法,我在需要的时候在我的项目中使用它。无论它在哪里调用。只是字符串就够了;)这里的解决方案:
public static string Mask_IT(this string source, char MaskingChar, int AllowedCharCount)
{
var cArr = source.ToCharArray();
if(source.Length - AllowedCharCount >=0)
{
for (int i = 0; i < ( cArr.Length - AllowedCharCount; i++ )
{
if (cArr[i] != MaskingChar) cArr[i] = MaskingChar;
}
}
return cArr.ToString();
}
用法示例:
private void yourTextBasedComponent_TextChanged (object sender, EventArgs e)
{
return YourTextBasedComponent.Text.Mask_IT('*', 2);
}
注意 - 1:始终使用TextChanged
事件..使用Text_Changed
事件(或与您的组件一起实施的类似事件),您可以阻止不需要的结果......例如,如果有人试图复制 - 禁用不需要的字符串,然后您的Key-Up
或KeyDown
事件因其收听特征而无效。但Text_Changed
在文本发生变化时始终有效;)
注意 - 2:在方法中有一个名为“AllowedCharCount”的参数。这是为“将最后(n)个字符保留为未屏蔽”