gpt4 book ai didi

winforms - 当 MultiLine 属性为 True 时,“全选”快捷方式失败

转载 作者:行者123 更新时间:2023-12-02 19:25:16 25 4
gpt4 key购买 nike

我有一个 Windows 窗体应用程序,上面有一个标准文本框。没有正在处理的事件,窗体上也没有菜单。当我按 Ctrl+A 快捷键选择所有文本时,我听到一声 clang ,但没有选择任何内容。

为了确认我没有无意中编写了一些代码,我创建了一个新的 Windows 窗体应用程序,窗体上仅包含一个文本框。我用 C# 和 VB.Net 都试过了,两者都是一样的。我已在 Windows 7 上运行的 Visual Studio 2012 Update 1 和 Windows XP 上运行的 Visual Studio 2008 中尝试过此操作,并且在每个实例中的行为都相同。

我可以很容易地捕获 KeyDown 事件中的击键组合,但即使在设置 e.Cancel = true 后,机器仍然会发出“叮”声。

有没有办法抑制声音,或者更好的是,有办法让文本框像非多行文本框一样接受快捷方式?

最佳答案

这对许多程序员来说是一个惊喜,但 native Windows 编辑控件在多行模式下实际上并没有实现 Ctrl+A 作为快捷方式。它必须由使用它的程序来实现。例如,您可以在记事本(一个使用多行编辑控件的程序)中看到这一点。使用"file"+“打开”+"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;
}
}
<小时/>

更新:.NET 4.6.1 中进行了更改,System.Windows.Forms.TextBox 现在也实现了多行文本框的 Ctrl+A。

关于winforms - 当 MultiLine 属性为 True 时,“全选”快捷方式失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com