Foxtable(狐表)用户栏目专家坐堂 → 再谈SendKeys的使用


  共有17179人关注过本帖树形打印复制链接

主题:再谈SendKeys的使用

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
再谈SendKeys的使用  发帖心情 Post By:2009/9/6 13:07:00 [只看该作者]

     窗口中有一个文本框,用于输入数据,如果输错了,想删除,我点一下按钮,希望执行键盘的退格键的功能,但是我发现,不论我的光标放在何处,执行下列代码,都会删除文本框中所有的字符,而退格键的功能是,只删除光标左边的一个字符,应该如何写代码?

退格按钮的代码:
e.Form.Controls("TextBox1").Select()
SendKeys.Send("{BS}")

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/9/6 13:39:00 [只看该作者]

全选了再Backspace 那是肯定会删除文本框中所有的字符

这样:?
e.Form.Controls("TextBox1").Select()
SendKeys.Send("{right 10}")       '次数不够可增加~
SendKeys.Send("{BS}")
[此贴子已经被作者于2009-9-6 13:52:26编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/9/6 14:01:00 [只看该作者]

以下是引用mr725在2009-9-6 13:39:00的发言:
全选了再Backspace 那是肯定会删除文本框中所有的字符

这样:?
e.Form.Controls("TextBox1").Select()
SendKeys.Send("{right 10}")       '次数不够可增加~
SendKeys.Send("{BS}")
[此贴子已经被作者于2009-9-6 13:52:26编辑过]

谢谢老师,这个好用,呵呵


 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/9/6 14:10:00 [只看该作者]

还有点问题,比如一组数字:9876,不论光标放在何处,它首先删除的都是"6",而退格键,是删除光标前面的一位数啊
我的代码是:
e.Form.Controls("TextBox1").Select()
SendKeys.Send("{right 1}")
SendKeys.Send("{BS}")


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/9/6 16:02:00 [只看该作者]

以下是引用mr725在2009-9-6 13:39:00的发言:
全选了再Backspace 那是肯定会删除文本框中所有的字符

这样:?
e.Form.Controls("TextBox1").Select()
SendKeys.Send("{right 10}")       '次数不够可增加~
SendKeys.Send("{BS}")
[此贴子已经被作者于2009-9-6 13:52:26编辑过]


SendKeys.Send("{right 10}") 和SendKeys.Send("{right}") 应该是没有区别的。


 回到顶部
帅哥哟,离线,有人找我吗?
czy
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2009/9/6 16:10:00 [只看该作者]

以下是引用yangming在2009-9-6 14:10:00的发言:

还有点问题,比如一组数字:9876,不论光标放在何处,它首先删除的都是"6",而退格键,是删除光标前面的一位数啊
我的代码是:
e.Form.Controls("TextBox1").Select()
SendKeys.Send("{right 1}")
SendKeys.Send("{BS}")


如果能判断出光标处于字符中的哪个位置就有办法,否则没门。


 回到顶部
美女呀,离线,留言给我吧!
yangming
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/9/6 16:35:00 [只看该作者]

以下是引用czy在2009-9-6 16:10:00的发言:


如果能判断出光标处于字符中的哪个位置就有办法,否则没门。

我也想过这问题,可是这个位置不好判断,但是我又想了,模拟键盘,就不该有这样的要求啊


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2009/9/6 17:33:00 [只看该作者]

以下是引用czy在2009-9-6 16:02:00的发言:


SendKeys.Send("{right 10}") 和SendKeys.Send("{right}") 应该是没有区别的。

对呀,应为有Select() ,我晕~


 回到顶部
帅哥哟,离线,有人找我吗?
易狐
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:147 积分:947 威望:0 精华:0 注册:2009/5/12 9:43:00
  发帖心情 Post By:2009/9/6 17:40:00 [只看该作者]

因为点击按钮,文字框焦点丢失,可以改用MouseHover事件,代码为SendKeys.Send("{BS}")即可实现效果!

注:不要放在MouseEnter等其他事件中,容易误删除!

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/9/6 18:07:00 [只看该作者]

不过我认为没必要这么用,不管是表格还是文字框,输入内容几乎都在键盘操作,去点击按钮还要改变操作方式,那就不如直接点击Backspace键来得更快捷!

 回到顶部
总数 19 1 2 下一页