Backspace代码实现

carl5chao 2008-09-29 04:42:04
一个文本框,一个按钮,我想实现按钮对文本框的后退时间,就是当文本框输入错误时,点击按钮,就撤销刚才的一次输入!
...全文
124 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hornbills 2008-09-29
  • 打赏
  • 举报
回复
1、如果是用在web页面,撤销输入我认为应该是用javascript解决的
2、如果用在winform,我认为sendkeys比较合适
3、变通的方法也可以,但是要注意错误处理

比如textBox2.Text = textBox2.Text.SubString(0,textBox2.Text.Length-1);
textbox2.text.length=0时就会有错误。
ZengHD 2008-09-29
  • 打赏
  • 举报
回复
应该是发送Ctrl+Z吗
brallow 2008-09-29
  • 打赏
  • 举报
回复
第一个方法是模拟击键,它只是把相应的键盘消息发送到当前主窗口,所以你必须先设置一下主窗口。
但这个方案存在一个危险就是有可能在这一瞬间程序切换了主窗口,导致这个按钮无效。

第二个方法是直接把最后一个字符给截断掉。这个比较简单,你目前的要求是肯定能够达到而且也没有方案1的问题,只是如果当前光标并不是停在最后一个位置上就不行了。

brallow 2008-09-29
  • 打赏
  • 举报
回复
这一段代码,经过测试:

textBox2.Focus();
SendKeys.SendWait("{BACKSPACE}");

textBox2是你的textBox控件。因为这个方案是通过模拟发送BackSpace按键,所以必须先把焦点设置到这个文本框上。
同时你还可以用更简单的:

textBox2.Text = textBox2.Text.SubString(0,textBox2.Text.Length-1);

carl5chao 2008-09-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 phy 的回复:]
SendKeys.Send("{BACKSPACE}");
大体是这样的
[/Quote]
能不能具体点?
brallow 2008-09-29
  • 打赏
  • 举报
回复
SendKeys.Send("{BACKSPACE}");
大体是这样的

110,503

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧