gpt4 book ai didi

c# - 为什么在 C# 中启用多行的 TextBox 控件上禁用 CTRL+A 快捷方式?

转载 作者:太空狗 更新时间:2023-10-30 00:39:55 24 4
gpt4 key购买 nike

MSDN 的 documentation TextBox 的 ShortcutsEnabled 属性指出:

The TextBox control does not support the CTRL+A shortcut key when the Multiline property value is true.

...但是为什么呢? Kaitlyn 在下面提到 TextBoxRichTextBox 都派生自相同的基类 TextBoxBase,但是 RichTextBox 控件本身支持快捷方式。

手动将其重新添加很容易,并且有很多问题可以回答如何执行此操作,但我想不出为什么他们会出去他们想在这种特定情况下禁用此功能。

技术原因是什么?

最佳答案

引用别人的话,就是:

probably because TextBox wraps the native Windows EDIT control, which only supports a subset of the shortcuts.

引自 https://stackoverflow.com/a/5893879/3472690 的 Frédéric Hamidi

经过一些研究,Frédéric 提到的原生 Windows 编辑控件似乎是 this one, at MSDN, regarding Edit Controls

正如艾伦·麦克唐纳 (Alan Macdonald) 在对上面链接的相同答案的评论中所说...

Terrible feature of multiline text boxes

编辑:

找到另一个潜在的原因。引自 DMA57361 of SuperUser

As a shortcut, Ctrl+A = Select All is not something implemented by Windows.

It will only work in those programs that implement this shortcut themselves, not universally across the system.

SuperUser 的 KCotreau 对 DMA57361 的回答的附加评论也与 xpda 所说的兼容性相关(名称从引用中删除):

it is not implemented in XP or Server 2003, but it is implemented in Windows 7 and Server 2008 (and probably Vista), at least for the Run box. So your system does not technically have a problem...it just lacks a feature.

至于来自 MSDN 本身的更多信息,并且与上面的其他引用相对应......“About Edit Controls ”文章说:

Rich edit controls support many features not available in system edit controls. For more information, see Rich Edit Controls.

此外,正如 this article, also from MSDN 引述的那样,编辑控件存在限制(但开发人员网络部分而不是 Windows 开发中心,我不确定这有什么区别...)

Edit controls were designed to enter, display, and edit small amounts of text. They were not meant to be the basis for large-scale text editors.


它也像 x​​pda 所说的那样,似乎已经很好地打算这样做了,or they simply didn't want to bother fixing it, as quoted by a reply to an issue regarding multiline textboxes not supporting the Select-All shortcut on the Visual Studio feedback section :

We have evaluated the issue that you have reported and at this point in the product's lifecycle, it does not meet the criteria to be addressed. This evaluation is carefully done and considers many aspects including the cost of the fix, implications of the change, and the number of reported instances of the issue.

最后,为了进一步解释为什么这是设计使然......以及为什么它会是为了“兼容性”......这是来自 Shuja Ali on a certain CodeGuru forum, saying 的引述:

It never used to work in VB 6.0 and .NET 1.1

为了进一步“支持”TextBoxBase.ShortcutEnabled Property is new for .NET Framework 2.0, and the Ctrl+A shortcut already doesn't work at that stage, as evident by the comment by a hemantpurkar to that article Shuja Ali 的引述。


因此,要将上述所有研究浓缩成一个句子...

The inability to use the shortcut "Ctrl+A" has existed since the very first version of the .NET Framework where shortcuts are supported properly (2.0), and Microsoft has been too lazy to fix it ever since, thus it is claimed to be "by design" and left like that for "compatibility".

关于c# - 为什么在 C# 中启用多行的 TextBox 控件上禁用 CTRL+A 快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381963/

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