【问题标题】:WPF XAML textbox caret position at the End [duplicate]WPF XAML 文本框插入符号在末尾的位置 [重复]
【发布时间】:2020-03-28 12:28:50
【问题描述】:

我正在开发一个使用大量文本框的应用程序。如果他们获得焦点,插入符号位于文本框的第一个位置。即使已经存在文本。 当他们获得焦点时,我正在寻找一个解决方案,以便在所有 Texbox 的文本末尾设置插入符号。

我知道,我可以处理 GotFocus()-Event,然后手动设置位置。但是有更聪明的解决方案吗?

【问题讨论】:

    标签: c# .net wpf vb.net xaml


    【解决方案1】:

    如你所说,最简单的方法是使用事件处理程序。

    private void TextBox_GotFocus(object sender, RoutedEventArgs e)
    {
        TextBox textBox = sender as TextBox;
        textBox.CaretIndex = textBox.Text.Length;
    }
    

    然后将此事件处理程序分配给每个TextBox

    通用TextBox 中的CaretIndex 不是属性。因此,更智能的解决方案至少需要创建一个继承自TextBox 的自定义控件。您可以通过这种方式将CaretIndex 设为属性。然后只需在 xaml 中使用 Style.Triggers 和属性 IsFocused

    【讨论】:

      猜你喜欢
      • 2011-02-22
      • 1970-01-01
      • 2011-01-08
      • 2011-05-13
      • 2022-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多