4

我正在使用 Visual Studio 制作应用程序,并且正在制作 Excel 插件。
我想添加一个用户名和密码字段,所以我使用 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(), "*");
}

我的最终解决方案:

这是不可能的,没有简单的方法解决它。
因此,我没有在功能区中使用这些控件,而是添加了一个登录按钮,当单击时会加载一个带有标准文本框的表单,这非常好用。

4

1 回答 1

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-UpKeyDown事件不会工作,因为他们的听力特性Text_Changed..但总是在文本改变时工作;)

注意 - 2:在方法中有一个名为“AllowedCharCount”的参数。这是用于“将最后(n)个字符保留为不被屏蔽”

于 2014-04-29T09:49:32.573 回答