2009年11月4日 星期三

C# textbox按ctrl+a全選

C#裡的textbox非常神奇的沒有支援ctrl+a把文字框裡的字全選的功能
(不過ctrl+c複製和ctrl+v貼上等功能都有耶)

只好我們自己實做一下 其實很簡單 就偵測key down的事件 看到ctrl和a同時被按的時候
將textbox SelectAll()就好
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
((TextBox)sender).SelectAll();
}
}


如果覺得每個textbox都設一個自己的keydown函式會太累贅 也可以將函式改名成這一個
textBox_SelectAll(object sender, KeyEventArgs e)
然後之後每個textbox的keydown事件都指過來這個函式就好 這函式會自己判斷是誰叫他的然後把叫他的textbox裡的文字圈起來


private void textBox_SelectAll(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
((TextBox)sender).SelectAll();
}
}

1 意見:

張貼留言
匿名 提到...

记得在((TextBox)sender).SelectAll();后边加上一句e.SuppressKeyPress = true;

否则键盘消息还会继续传递到基础控件,传出难听的“叮”一声