有没有办法在文本框具有焦点时使某些代码工作?
Is there a way to make some piece of code work while textbox has focus?
我一直在尝试使用文本框做一些事情。我总是需要检查 CaretIndex
属性 是否低于 3。如果是,我需要将其设置回 3。我看到的唯一方法是循环遍历这段代码,而文本框有重点.
if (textbox.CaretIndex < 3) textbox.CaretIndex = 3;
如何在文本框获得焦点时让这段代码循环?有 GotFocus
和 LostFocus
事件,但它们仅在我单击文本框时起作用。
听起来你真的只需要关注一下 CaretIndex
。最简单的方法是处理 TextBox 的 SelectionChanged
事件:插入符号是选择的一端,它是可以更改的一端。任何人使用鼠标或键盘更改插入位置的任何操作都会更改选择。
private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
if (textbox.CaretIndex < 3)
textbox.CaretIndex = 3;
}
<TextBox SelectionChanged="TextBox_SelectionChanged"/>
我一直在尝试使用文本框做一些事情。我总是需要检查 CaretIndex
属性 是否低于 3。如果是,我需要将其设置回 3。我看到的唯一方法是循环遍历这段代码,而文本框有重点.
if (textbox.CaretIndex < 3) textbox.CaretIndex = 3;
如何在文本框获得焦点时让这段代码循环?有 GotFocus
和 LostFocus
事件,但它们仅在我单击文本框时起作用。
听起来你真的只需要关注一下 CaretIndex
。最简单的方法是处理 TextBox 的 SelectionChanged
事件:插入符号是选择的一端,它是可以更改的一端。任何人使用鼠标或键盘更改插入位置的任何操作都会更改选择。
private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
if (textbox.CaretIndex < 3)
textbox.CaretIndex = 3;
}
<TextBox SelectionChanged="TextBox_SelectionChanged"/>