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


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

主题:再谈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}")

 回到顶部
美女呀,离线,留言给我吧!
yangming
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | 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}")


 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | 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的发言:


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

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


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


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

以下是引用易狐在2009-9-6 17:40:00的发言:
因为点击按钮,文字框焦点丢失,可以改用MouseHover事件,代码为SendKeys.Send("{BS}")即可实现效果!

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

放在这儿是可以实现,但是,最好是能按下按键再执行才好,用此事件,不用按就执行了,感觉不爽啊


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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/9/7 9:22:00 [显示全部帖子]

以下是引用mr725在2009-9-6 18:20:00的发言:
要不这样?: MouseUp事件::::::::::::

if MessageBox.Show("确认将删除光标前面的一个字符! 你确定? ", "提示", MessageBoxButtons.YesNo) = DialogResult.Yes
    SendKeys.Send("{BS}")
else
end if

先谢谢,但是,我不是放文本框,而是在放在按钮中,请贺老师看看如何实现一楼的想法


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


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/9/7 9:40:00 [显示全部帖子]

以下是引用狐狸爸爸在2009-9-7 9:32:00的发言:

呵呵,我试验了几次,全部失败,我也没有办法。

[此贴子已经被作者于2009-9-7 9:35:40编辑过]

晕死了,没有办法了?


 回到顶部