I have a masked textbox with the need to have a min/max length set on them. When these conditions are met a button becomes enabled.
I was thinking of handling the TextChanged event to determine the length of the entered text and set the buttons enabled value.
Is there a better approach?
btnOK.Enabled = txtDataEntry.Text.Length >= MinDataLength && txtDataEntry.Text.Length <= MaxDataLength;
Which approach could be even simpler than what you are suggesting?
myTextBox.Textchanged+=(s,o)=>{ myButton.Enabled = myTextBox.Length==10; };
IMO TextChanged event is good place to handle this feature condition.
Update
Do it in KeyPress event like this:
maskedtxtbox.KeyPress => (s , ev ) {
if(maskedtxtbox.Length > 9)
{
//This prevent from key to go to control
e.Handled =true;
button1.Enabled = true;
}
};
// At your texbox valdating Event
private void textBox4_Validating(object sender, CancelEventArgs e)
{
TextBox tb = sender as TextBox;
if (tb != null)
{
int i=tb.Text.Length;
//Set your desired minimumlength here '7'
if (i<7)
{
MessageBox.Show("Too short Password");
return;
}
}
else
e.Cancel = true;
}