我有一个文本框,我想在其中根据 GotFocus 和 LostFocus 事件移动插入符号。在 GotFocus 上,我必须使用调度程序来移动它,没有它,移动就不会发生。在 LostFocus 上,我也尝试使用调度程序,但是当我使用它时,插入符没有移动。我在没有调度员的情况下移动了插入符号索引,并且移动发生了。
我想知道这两种方法有什么区别,我应该在什么情况下使用它们?
文本框的 XAML:
<TextBox Margin="75,25,30,0" LostFocus="MoveCarretToStart" GotFocus="MoveCarretToEnd" Background="Transparent" MaxLength="100" Height="25" BorderThickness="0,0,0,1" Name="LabelFreeText" Width="Auto" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="12" FontStyle="Italic">
后面代码中的方法:
private void MoveCarretToEnd(object sender, RoutedEventArgs e)
{
Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
{
LabelFreeText.CaretIndex = LabelFreeText.Text.Length;
}));
}
private void MoveCarretToStart(object sender, RoutedEventArgs e)
{
LabelFreeText.CaretIndex = 0;
}
相关分类