TextBox Ctrl+A不能全选的问题
问题:
当TextBox控件在设置了MultiLine=True之后,Ctrl+A 无法全选,十分影响使用体验。
对于这个问题不明所以,不知道是Bug,还是故意而为之。。。
解决1:
添加KeyDown或者KeyUp事件
if (e.Modifiers == Keys.Control && e.KeyCode == Keys.A)
{
((TextBox)sender).SelectAll();
}
**但是上面代码会有个问题,如果你的电脑有喇叭的话,按下Ctrl+A会发出 咚的一声警报声。
解决2:
使用KeyPress事件完美解决。
if (e.KeyChar == '\x1')
{
((TextBox)sender).SelectAll();
e.Handled = true;
}
上面多了行代码e.Handled=true 我开始看到这行代码以为是这行起的作用,尝试把这行代码复制到 解决1 的事件中,结果发现无效
Private Sub TextBox2_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
If e.KeyChar = ChrW(1) Then
CType(sender, TextBox).SelectAll()
e.Handled = True
End If
End Sub