6189|10

69

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何在笔针点击textbox后,里面的文本被选中? [复制链接]

我是用C#写WinCE程序的,现在要求在文本框中输入文本并失去焦点后,再用笔针点击该文本框,要让里面的文本成选中状态。
我现在在该文本框的GotFocus事件中是这么写的:
private void textBox1_GotFocus(object sender, System.EventArgs e)   
{   
        TextBox tx=(TextBox)sender;
        if (tx != null)
        {
                tx.SelectAll();
        }
}

但程序在运行时,笔针点了该文本框,文本被选中后光标又跳到了笔针所点位置,并取消了选中状态。
而如果是通过代码来让文本框得到焦点,或是通过Tab键跳到该文本框,则没有此问题。
我也尝试用MouseDown等鼠标事件,但好像在WinCE里面,textBox都不支持这些事件。
现请教各位如何处理。

最新回复

我真是不明白,已经告诉了你正确的方法,你却放弃尝试,太可惜了。我在C++中用快捷键完全可以做到。  详情 回复 发表于 2007-10-22 09:06
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没有环境不好测了,但我想的是你可能是在得到焦点事件后有执行了点击事件就出现上述问题,你可以换个思路来做.

判断这是这个文本框第一次获得焦点,从而不去执行点击事件.

m_isFirst = TRUE;

private void textBox1_GotFocus(object sender, System.EventArgs e)   
{   
        TextBox tx=(TextBox)sender;
        if (tx != null)
        {
                tx.SelectAll();

        }
}

在消息里拦截点击消息


if(m_isFirst)
{
m_isFirst = FALSE;
return;
}


在失去焦点的时候把这个执为FALSE;
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
首先,我并没有写该文本框的click事件
其次,在wince里面,好像文本框的click事件不会被执行

由于textBox的属性事件中,没有Click事件,我只能在窗体生成代码中添加:
this.textBox1.Click +=new EventHandler(textBox1_Click);
而后又写了Click事件代码:
private void textBox1_Click(object sender, EventArgs e)
{
        MessageBox.Show("test");
}
但程序运行时,点了该文本框,消息是不会弹出来点。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
我上面写的Click事件,是后加的,是为了测试1982pc()说的方法。
我也猜可能是在执行完焦点事件后,又执行了别的什么事件,但我用单步调试,确实也没发现焦点事件后有别的代码被执行。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

5
 
C#里确实不清楚了,如果是VC呢,还可以看看消息处理函数
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

6
 
up
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

7
 
在EVC4下,可以处理WM_SETCURSOR消息
C#不知道,楼主自己试试吧
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

8
 
欢迎访问www.chinadacs.cn
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
用spy看看edit里发生了什么。
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

10
 
当焦点在edit中时,发一个快捷键 CTRL+A 就行了
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

11
 
我真是不明白,已经告诉了你正确的方法,你却放弃尝试,太可惜了。我在C++中用快捷键完全可以做到。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表