• WPF之RichTextBox丢失光标仍然选中文本


    描述:开发中完成了一个类似于Word的悬浮工具栏功能,选中文本之后可以自动弹出一个工具栏。可以修改字体、字体大小等功能,问题来了,我发现当去进行操作的时候原本选中的RichTextBox的内容的颜色会变为白色,其实仍然是选中状态,可是颜色消失了。查找了大量资料都认为是LostFocus搞的鬼,经过多次试验得出一个结论,那就是重写下LostFocus的事件。

    开工:上文中提到认为是LostFocus搞的鬼,RichTextBox有两个LostFocus,OnLostFocus和OnLostKeyboardFocus,两者的区别是前者为鼠标的焦点,后者为键盘的焦点。但是在测试中发现只会进入后者,而不会进入前者,所以还是比较诧异的,诧异归诧异,我们继续。

    上代码:

      protected override void OnLostKeyboardFocus(KeyboardFocusChangedEventArgs e)
            {
                e.Handled = true;
            }

    好吧,只有这么多代码,就是截获了OnLostKeyboardFocus事件即可,但是这样会有一个不太友好的结果就是选中色的丢失事件木有了。我会告诉你,点击下RichTextBox的内部即可消失吗,哈哈,美中不足就是点击其他的焦点不能消失,大家斟酌吧。

  • 相关阅读:
    E-Eating Together(POJ 3670)
    F-Dining Cows(POJ 3671)
    I-MooFest(POJ 1990)
    A-Apple Catching(POJ 2385)
    H-The Cow Lineup(POJ 1989)
    LOOPS(HDU 3853)
    Card Collector(HDU 4336)
    Help Me Escape (ZOJ 3640)
    Collecting Bugs(POJ 2096)
    c#大圣之路笔记——c# 从DataGrid中导出数据 Session
  • 原文地址:https://www.cnblogs.com/ListenFly/p/3454356.html
Copyright © 2020-2023  润新知