我一直在尝试使用文本框进行操作。我总是需要检查CaretIndex
属性是否小于3。如果是,则需要将其设置回3。唯一看到的方法是在文本框具有焦点的情况下循环遍历这段代码。>
if (textbox.CaretIndex < 3) textbox.CaretIndex = 3;
当文本框具有焦点时,如何使这段代码循环?有GotFocus
和LostFocus
个事件,但是它们仅在我单击文本框时才起作用。
答案 0 :(得分:1)
听起来您真的只需要注意CaretIndex
。最简单的方法是处理TextBox的SelectionChanged
事件:插入号是选择的一端,它是可以更改的一端。任何人用鼠标或键盘更改插入符号位置的操作都会更改选择。
private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
if (textbox.CaretIndex < 3)
textbox.CaretIndex = 3;
}
<TextBox SelectionChanged="TextBox_SelectionChanged"/>