Pregunta

I have a PasswordBox and I need to use this control even as a TextBox. I need to display normal text and not the typical black dots

enter image description here

Is there a property to do this? Thanks.

¿Fue útil?

Solución

Here is your answer:

  1. Use a Textbox
  2. When you want the text masked set TextBox.UseSystemPasswordChar = true;
  3. when you want to see the text set TextBox.UseSystemPasswordChar = false;
  4. Profit

Example:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    if (checkBox1.Checked == true)
    {
        TextBox.UseSystemPasswordChar = true;
    }
    else 
    {
        TextBox.UseSystemPasswordChar = false;
    }
}

Black dots when you want them, words when you don't. You can use what ever trigger/logic you want for the turning on and off but this way you are only using one control and get all the functionality that you specified you needed.

Otros consejos

Your best solution would be to have a Password Box with a checkbox underneath that says "Show characters" and then create a Trigger on the Password Box that overlays a TextBox on it for typing and retrieve the text as appropriate.

Superimpose a TextBox and a PasswordBox, keeping only one Visible at a time. When you want to switch over, copy over the value of the active one to the other one, and switch their visibilities. Simple.

I think everybody agrees on this very basic solution: Use a TextBox if you want to display what the user is typing.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top