如何在编辑框中隐藏密码文本以进行办公室功能区开发

时间:2014-03-08 16:26:05

标签: c# excel ribbon editbox

我正在使用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(), "*");
}

我的最终解决方案:

无法做到,没有简单的方法 因此,我没有在功能区中使用这些控件,而是添加了一个登录按钮,当单击时加载带有标准文本框的表单,这非常合适。

1 个答案:

答案 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-UpKeyDown事件因其收听特征而无效。但Text_Changed在文本发生变化时始终有效;)

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