我正在尝试操作一个 TextBox
,以便您可以单击它或在其上使用 Tab 键,并且您可以专注于更改值,而无需退格键来删除现有值。以下代码有效,但如果用户不想更改该值而恰好在控件之间切换,则该值将丢失。有没有一种简单的方法可以做到这一点而不必跟踪当前和以前的变量值?
下面是给予用户焦点但抹去了现有值(value)的代码:
private void txt_foo_GotFocus(object sender, RoutedEventArgs e)
{
TextBox tb = (TextBox)sender;
tb.Text = string.Empty;
tb.GotFocus -= txt_panelWidth_GotFocus;
}
最佳答案
我的解决方案:选择文本
void SelectingTextBox_GotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e)
{
var tb = sender as TextBox;
if (tb != null && e.KeyboardDevice.IsKeyDown(Key.Tab))
{
tb.SelectAll();
}
}
注意这个 e.KeyboardDevice.IsKeyDown(Key.Tab)
条件是我在我的项目中使用的条件,以便在按选项卡导航时仅选择所有文本。如果您总是想选择所有文本,则可以删除该条件。但是,当所有文本都被选中时,对于使用鼠标操作的用户来说可能会很烦人。
关于c# - 如何在不丢失其值(value)的情况下关注文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48950320/