Как скрыть текст пароля в поле ввода для разработки офисной ленты
Я делаю приложение, используя 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) символов как немаскированные"