【发布时间】:2015-11-01 15:54:09
【问题描述】:
默认情况下,文本框不插入制表符。当您按 Tab 时,它会将焦点移至下一个元素。当您按下 Ctrl-Tab 时,它会插入一个制表符。
如何修复这种行为,使其表现得像人们通常期望的文本框一样,例如 Tab 键使用制表符插入缩进?此外,如何将 Ctrl-Tab 重新映射到替代功能?
对于插入制表符的第一个问题,我可以附加到TextBox的KeyDown事件,如果按下的键是Tab,则将事件标记为已处理以防止TextBox失去焦点,但是如何插入Tab角色?
当我附加到文本框的 KeyDown 事件时,如果已按住 Ctrl,则按 Tab 键根本不会触发侦听器。如果我附加到 TextBox 的 KeyUp 事件,按下 tab 键确实会被拾起,但只有在它已经将一个选项卡插入到 TextBox 之后。如果没有这种不需要的行为,如何重新映射 Ctrl-Tab?
我正在使用 C++/CX。
【问题讨论】:
-
@sibbl 不幸的是,这种方法不适用于 TextBox,因为据我所知,对于 RichEditBox 的 Document 文本对象模型,没有可以直接访问的等效方法。
-
我现在和你的回答一样。有趣的事实:Ctrl-I inserts a Tab。不知道这个奇怪的 TextBox 是从哪里来的(另请参阅
SelectedText,SelectionLength, etc 中的 weird newline management),但我希望微软能够理解并重构它。 /叹息
标签: textbox windows-runtime c++-cx uwp