steffen1994
steffen1994

Reputation: 287

Show password in textbox while holding a button

I have a textbox in my WinForm and when I type the password in, its hidden because:

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

is it possible to add here a button, and while the button is pressed, the password show normal and when I stop pressing the button, the password will hide again?

Upvotes: 5

Views: 13125

Answers (4)

steffen1994
steffen1994

Reputation: 287

I have a solution now, I wanted something like a eye button, when you press it down the password shows, when you stop pressing, the password hides again.

Solution First I added a pictureBox with Eye Icon and added this pictureBox to my password textbox and set Passwort textbox to .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);
}

Added the Mouse_Down/Up Event

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

This works fine for me! Thank you guys !!

Upvotes: 7

ispiro
ispiro

Reputation: 27673

Maybe this? (Don't forget to subscribe to these events)

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

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

Upvotes: 11

Andy
Andy

Reputation: 111

Is there a reason you set the UseSystemPasswordChar in the TextChanged event?

If you can set the property in the Initialize() method or in the constructor you can implement the following events for your button:

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

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

Upvotes: 2

Lucifer
Lucifer

Reputation: 1594

Adding a bit change details to ispiro's answer

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;
}

Before:- enter image description here

After :- enter image description here

Upvotes: 3

Related Questions