以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 再谈SendKeys的使用 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=4237) |
-- 作者:yangming -- 发布时间:2009/9/6 13:07:00 -- 再谈SendKeys的使用 窗口中有一个文本框,用于输入数据,如果输错了,想删除,我点一下按钮,希望执行键盘的退格键的功能,但是我发现,不论我的光标放在何处,执行下列代码,都会删除文本框中所有的字符,而退格键的功能是,只删除光标左边的一个字符,应该如何写代码? 退格按钮的代码: e.Form.Controls("TextBox1").Select() SendKeys.Send("{BS}") |
-- 作者: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 -- 发布时间: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 -- 发布时间:2009/9/6 14:10:00 -- 还有点问题,比如一组数字:9876,不论光标放在何处,它首先删除的都是"6",而退格键,是删除光标前面的一位数啊 |
-- 作者:czy -- 发布时间: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编辑过]
|
-- 作者:czy -- 发布时间:2009/9/6 16:10:00 -- 以下是引用yangming在2009-9-6 14:10:00的发言:
还有点问题,比如一组数字:9876,不论光标放在何处,它首先删除的都是"6",而退格键,是删除光标前面的一位数啊
|
-- 作者:yangming -- 发布时间:2009/9/6 16:35:00 -- 以下是引用czy在2009-9-6 16:10:00的发言:
我也想过这问题,可是这个位置不好判断,但是我又想了,模拟键盘,就不该有这样的要求啊 |
-- 作者:mr725 -- 发布时间:2009/9/6 17:33:00 -- 以下是引用czy在2009-9-6 16:02:00的发言:
对呀,应为有Select() ,我晕~ |
-- 作者:易狐 -- 发布时间:2009/9/6 17:40:00 -- 因为点击按钮,文字框焦点丢失,可以改用MouseHover事件,代码为SendKeys.Send("{BS}")即可实现效果! 注:不要放在MouseEnter等其他事件中,容易误删除! |
-- 作者:程兴刚 -- 发布时间:2009/9/6 18:07:00 -- 不过我认为没必要这么用,不管是表格还是文字框,输入内容几乎都在键盘操作,去点击按钮还要改变操作方式,那就不如直接点击Backspace键来得更快捷! |