Показать пароль в текстовом поле, удерживая кнопку - PullRequest
0 голосов
/ 07 июня 2018

У меня есть текстовое поле в WinForm, и когда я набираю пароль, оно скрывается, потому что:

private void textBoxPWMain2_TextChanged(object sender, EventArgs e)
{
    textBoxPWMain2.UseSystemPasswordChar = true;
}

можно ли добавить сюда кнопку, и пока кнопка нажата, пароль показываетнормально и когда я перестану нажимать кнопку, пароль снова скроется?

Ответы [ 4 ]

0 голосов
/ 08 июня 2018

У меня есть решение, я хотел что-то вроде кнопки «глаз», когда вы нажимаете ее, пароль показывает, когда вы прекращаете нажимать, пароль снова скрывается.

Решение СначалаЯ добавил PictureBox с Eye Icon и добавил этот pictureBox в свое текстовое поле пароля и установил для текстового поля Passwort значение .UseSystemPasswordChar

public Form1
{
textBoxPW.Controls.Add(pictureBoxEye);
pictureBoxEye.Location = new Point(95,0);
pictureBoxEye.BackColor = Color.Transparent;

textBoxPW.UseSystemPasswordChar = true;

//Subscribe to Event
pictureBoxPW.MouseDown += new MouseEventHandler(pictureBoxPW_MouseDown);
pictureBoxPW.MouseUp += new MouseEventHandler(pictureBoxPW_MouseUp);
}

Добавлено событие Mouse_Down / Up

private void pictureBoxEye_MouseDown(object sender, MouseEventArgs e)
    {
        textBoxPW.UseSystemPasswordChar = false;

    }

private void pictureBoxEye_MouseUp(object sender, MouseEventArgs e)
    {
        textBoxPW.UseSystemPasswordChar = true;

    }

enter image description here

Это прекрасно работает для меня!Спасибо ребята !!

0 голосов
/ 07 июня 2018

Существует ли причина, по которой вы устанавливаете UseSystemPasswordChar в событии TextChanged?

Если вы можете установить свойство в методе Initialize () или в конструкторе, вы можете реализовать следующие события для вашей кнопки:

private void button1_MouseDown(object sender, MouseEventArgs e)
{
    textBoxPWMain2.UseSystemPasswordChar = false;
}

private void button1_MouseUp(object sender, MouseEventArgs e)
{
    textBoxPWMain2.UseSystemPasswordChar = true;
}
0 голосов
/ 07 июня 2018

Добавление информации об изменениях в ispiro's ответ

public void button1_MouseDown(object sender, EventArgs e)
{
    textBox1.PasswordChar = '\0';
    textBox1.UseSystemPasswordChar = false;
}

public void button1_MouseUp(object sender, EventArgs e)
{
    textBox1.PasswordChar = '*';
    textBox1.UseSystemPasswordChar = true;
}

До: - enter image description here

После: - enter image description here

0 голосов
/ 07 июня 2018

Может быть, это?(Не забудьте подписаться на эти события)

private void button2_MouseDown(object sender, EventArgs e)
{
    textBoxPWMain2.UseSystemPasswordChar = false;
}

private void button2_MouseUp(object sender, EventArgs e)
{
    textBoxPWMain2.UseSystemPasswordChar = true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...