是否有一种方法可以在TextBox具有焦点时进行一些代码工作



我一直在尝试使用文本框做某事。我总是需要检查CaretIndex属性是否低于3。如果是,我需要将其设置回3。我看到的唯一方法是循环浏览此代码,而TextBox具有焦点。

if (textbox.CaretIndex < 3) textbox.CaretIndex = 3;

在文本框具有焦点时,如何制作此代码循环?有GotFocusLostFocus事件,但是它们仅在我单击文本框时起作用。

听起来您真的只需要关注CaretIndex即可。最简单的方法是处理TextBox的SelectionChanged事件:Caret是选择的一端,并且可以更改的目的。任何人都使用鼠标或键盘更改CARET位置的任何事情都会改变选择。

private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
    if (textbox.CaretIndex < 3) 
        textbox.CaretIndex = 3;
}
<TextBox SelectionChanged="TextBox_SelectionChanged"/>

最新更新