I have a search page with 3 TextBoxes that users can filter a search with.
I have put the focus on the TextBox that contains text. If more than one contains text just focus on last TextBox.
private void SetFocusOnTextBox(ControlCollection ctrlCollection)
{
foreach (Control ctrl in ctrlCollection)
{
if (ctrl.GetType() == typeof(TextBox))
{
if (((TextBox)ctrl).Text != string.Empty)
{
SetFocus(ctrl);
}
}
}
}
After the code runs and a user searches, the focus comes to the beginning of the TextBox, not the end where it would be presumed. How to put insert marked at the end of that TextBox?
Shouldn't it be
to advance to the bottommost empty textbox? If it is
if (((TextBox)ctrl).Text != string.Empty)
, it will set focus (eventually) to the bottommost nonempty textbox.As for advancing your cursor to the last character, try this:
I think the answer is here: Use JavaScript to place cursor at end of text in text input element.
Taken from the linked solution: You have to add
onfocus="this.value = this.value"
to the three controls in the markup file. This is not so easy in ASP.NET as it should be, but one solution is to add the attribute in the code behind file.