当文本框具有焦点时,是否有办法使某些代码起作用?

时间:2019-06-27 19:30:29

标签: c# wpf text textfield

我一直在尝试使用文本框进行操作。我总是需要检查CaretIndex属性是否小于3。如果是,则需要将其设置回3。唯一看到的方法是在文本框具有焦点的情况下循环遍历这段代码。

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

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

1 个答案:

答案 0 :(得分:1)

听起来您真的只需要注意CaretIndex。最简单的方法是处理TextBox的SelectionChanged事件:插入号是选择的一端,它是可以更改的一端。任何人用鼠标或键盘更改插入符号位置的操作都会更改选择。

private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{

    if (textbox.CaretIndex < 3) 
        textbox.CaretIndex = 3;
}
<TextBox SelectionChanged="TextBox_SelectionChanged"/>