Alex
Alex

Reputation: 398

textbox focus check

I have a win app form with 3 text boxes and buttons as dial pad (it's a touchscreen app)...

When a dial pad button is pressed I want to check which one of these 3 text boxes has focus, and append text to it.

Something like:

if (tbx1.Focused == true)
{
   tbx1.Text += "0";
}
else if (tbx2.Focused == true)
{
   tbx2.Text += "0";
}
else
{
   tbx3.Text += "0";
}

But this doesn't work... It appends text to tbx3 all the time. Any suggestions?

Thanks :)

Upvotes: 7

Views: 15505

Answers (1)

Patrick
Patrick

Reputation: 17973

The problem arises when you click the button, the button will gain focus and not any of your textboxes.

What you can do is subscribe to the LostFocus event and remember what textbox had the focus last.

Something like:

private TextBox lastFocused;
private void load(object sender, EventArgs e){
    foreach (TextBox box in new TextBox[] { txtBox1, txtBox2, txtBox3 }){
        box.LostFocus += textBoxFocusLost;
    }
}

private void textBoxFocusLost(object sender, EventArgs e){
    lastFocused = (TextBox)sender;
}

Upvotes: 15

Related Questions