WPF TextBox 获得焦点后,文本框中的文字全选中

textbox.GotFocus 事件处理 Textbox.SelectAll() 是不行的, 这样处理会发生的情况是:
1) textbox1 当前没有焦点, 内容为 someText.
2) 鼠标点击 textbox1, 若单击点位于 someText 之内, 则 someText 被瞬间全选后所有的选择都被取消, 若单击点位于 someText 之外, 则不会发生任何事情, 没有任何选中的内容.

如下是解决办法

public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            LIKE_textBox.PreviewMouseDown += new MouseButtonEventHandler(LIKE_textBox_PreviewMouseDown);//注意,这个事件的注册必须在LIKE_textBox获得焦点之前
            LIKE_textBox.GotFocus += new RoutedEventHandler(LIKE_textBox_GotFocus);
            LIKE_textBox.LostFocus += new RoutedEventHandler(LIKE_textBox_LostFocus);
        }

        void LIKE_textBox_LostFocus(object sender, RoutedEventArgs e)
        {
            LIKE_textBox.PreviewMouseDown += new MouseButtonEventHandler(LIKE_textBox_PreviewMouseDown);
        }

        void LIKE_textBox_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            LIKE_textBox.Focus();
            e.Handled = true;
        }

        void LIKE_textBox_GotFocus(object sender, RoutedEventArgs e)
        {
            LIKE_textBox.SelectAll();
            LIKE_textBox.PreviewMouseDown -= new MouseButtonEventHandler(LIKE_textBox_PreviewMouseDown);
        }
    }
时间: 2024-10-14 14:09:54

WPF TextBox 获得焦点后,文本框中的文字全选中的相关文章

c#快速清除所有文本框中内容

c#快速清除所有文本框中内容 如何清除Form中所有的文本框内容?分两种情况:(1)当所有的文本框都是顶级控件,即它们都直接位于this.Controls(或groupBox.Controls)中,此时遍历一遍清除即可.(2)当文本框不全处于顶级,即部分包含在某些容器控件内,如groupBox中,由于控件在窗体中是严格分级摆放的.此时的文本框有的位于this.Controls中(即Form控件集中),有的则位于groupBox.Controls中. 对于(1),直接这样写就可: //或为grou

js数据显示在文本框中(页面加载显示和按钮触动显示)

web代码如下: <!DOCTYPE html> <html> <head> <title>jsTest02.html</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is

jsp利用cookie记住用户名,下次登录时显示在文本框中(仅仅一个Cookie就整了将近三个小时,⊙﹏⊙b汗)

<%@page import="java.net.URLDecoder"%> <%@page import="sun.security.util.Length"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html

对文本框中输入的内容放大显示和格式化

在最近做的项目中,发现用户在输入手机号.身份证或者银行卡这些重要的数据的时候,文本框显示的文字不是非常大,也不是非常明显的显示给用户. 往往这些重要数据用户都需要核对好几次,在确保正确无误的时候才敢点击保存,这样总会浪费一点时间,对用户的体验也不是非常友好,如果我们能在用户输入框的上面对输入的内容进行放大.颜色突出并且按照不同的分隔显示,是不是这样更能便于用户快速的核实数据呢. 于是自己利用业务时间就动手封装了一个小插件: 第一步:创建一个样式表sytle.css 1 @charset "utf

怎么去掉WIN7窗口文本框中淡绿色的底色

重装系统后突然发现,浏览器中URL位置,word文本框中到处都充满这种淡绿色的东西,突然就好怀念白色的底色.就想把他改过来.原来是这样的: 下面是亲测有用的教程. 1 . 回到桌面,单击右键选择个性化! 2 . 进入如下页面,选择高级外观设置: 3.进行如下设置,设置完后单击确定,就完成完成了更改,所有的文本底色都改为白色的啦! 4 .最后是如下的效果,都改成功啦

JavaScript实现在页面上的文本框中输入小写字母自动变为大写字母

<script language="javascript" type="text/javascript"> $(function () { $("input[type=text]").keyup(function () { $(this).val($(this).val().toUpperCase()); }); }); </script> $("input[type=text]") 处可为文本框ID,

C#文本框中默认是不允许使用全选的

C#文本框中默认是不允许使用全选的.可以通过以下事件完成: private void textBox1_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.A) textBox1.SelectAll(); } 这样,在文本框中输入ctrl+A时即可完成全选. 来自为知笔记(Wiz)

JavaScript实现在文本框中输入空格时自动填写某个值

<script language="javascript" type="text/javascript"> var txtText4 = "#" + '<%= new DynamicControl(this, "Text4").ClientID%>'; $(function () { $(txtText4).keyup(function (e) { if (e.which == 32) $(this).

QTP文本框中的弹窗问题

1.出发城市.到达城市.出发日期用同一类弹窗控件 2.导致录制出发城市.到达城市的识别属性都只有html tag,且录制结果都是NOBR,无法区分开来,结果回放不通过. 3.在对象识别设置中将page的强制识别属性加了innertext(其它属性应该也可以,只要是唯一的就行) 4.更改后录制可见三个控制是分开放在page page_2 page_3下面了(开始全部是在page的) 5.这样更改后回放发现还是出错,发现是输入框要先点击才能激活对应的弹出窗口,但录制是先弹窗再到输入框,手工将两者顺序