jac*_*jac 7 visual-studio winforms
我有一个Windows窗体应用程序,上面有一个标准的TextBox.没有事件被处理,表单上没有菜单.当我按Ctrl+ A快捷键选择所有文本时,我得到一个丁,没有选择任何东西.
为了确认我没有无意中编写代码,我创建了一个只有表单上的文本框的新Windows窗体应用程序.我用C#和VB.Net尝试过它,两者都是一样的.我在Windows 7上运行的Visual Studio 2012 Update 1和在Windows XP上运行的Visual Studio 2008中尝试过此操作,并且在每个实例中它的行为相同.
我可以很容易地在KeyDown事件中捕获关键笔划组合,但即使在设置e.Cancel = true机器静止之后听起来也是"叮".
有没有办法抑制声音,甚至更好的方法,使文本框接受快捷方式的方式与非多线文本框相同?
Han*_*ant 18
对于许多程序员来说这是一个惊喜,但是本机Windows编辑控件在多行模式下实际上并不实现Ctrl + A作为快捷方式.它必须由使用它的程序实现.例如,您可以在记事本中看到这一点,该记事本是一个使用多行编辑控件的程序.使用File + Open + File,选择c:\ windows \notepad.exe,打开Accelerator节点,然后双击其中一个表.
实施它并不困难:
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
if (e.KeyData == (Keys.Control | Keys.A)) {
textBox1.SelectAll();
e.Handled = e.SuppressKeyPress = true;
}
}
Run Code Online (Sandbox Code Playgroud)
更新:在.NET 4.6.1中更改,System.Windows.Forms.TextBox现在也为多行文本框实现了Ctrl + A.
| 归档时间: |
|
| 查看次数: |
2425 次 |
| 最近记录: |