Как скрыть текст пароля в поле ввода для разработки офисной ленты

Я делаю приложение, используя 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(), "*");
}

Мое окончательное решение:

Это невозможно сделать, простого пути нет.
Таким образом, вместо того, чтобы иметь эти элементы управления на ленте, я добавил кнопку входа в систему и при нажатии загружает форму со стандартным текстовым полем, и это прекрасно работает.

1 ответ

Извините за поздний ответ.. Ответил на вопрос, для которого проверяют этот вопрос, чтобы надеяться найти решение в будущем..

С этим методом расширения, который я использую в своих проектах, когда это необходимо.. Неважно, где он называется.. достаточно просто строки;) вот решение:

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) символов как немаскированные"

Другие вопросы по тегам