首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在WPF中的Textbox上处理Enter事件时接受Ctrl+Enter作为返回?

如何在WPF中的Textbox上处理Enter事件时接受Ctrl+Enter作为返回?
EN

Stack Overflow用户
提问于 2014-07-15 07:46:33
回答 1查看 518关注 0票数 2

我正在制作一个聊天窗口,当用户按下TextBox上的Enter键时,我想发送消息。但是我也想让用户使用Ctrl+Enter键输入中断行。

问题是当我设置AcceptsReturn=True时,用户按下KeyDown事件在TextBox附加行中断后触发的Enter键,所以发送的消息总是在末尾包含一个行中断。是否有一种方法在允许Ctrl+Enter的同时禁用Enter键?

我想出了一种最丑陋的方法,那就是当按Enter键时,先移除光标前的字母,然后处理它。但还有更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-15 07:55:18

我不能百分之百地确定您的需求,所以您可能需要稍微修改一下这段代码,但是您应该可以通过将 property of KeyEventArgs设置为false来做您想做的事情。根据链接的页面,这是:

获取或设置一个值,该值指示路由事件在传输路由时的事件处理的当前状态。

在通俗易懂的英语中,这只是意味着我们可以阻止它的进一步使用。试着做这样的事情:

代码语言:javascript
运行
复制
private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Enter) // if Enter key is pressed...
    {
        // ... and Ctrl key is NOT... then ignore it
        if (Keyboard.Modifiers != ModifierKeys.Control) e.Handled = true;
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24752635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档