在KeyDown事件上检测星号键

月亮骑士

首先,我已经看到了以下答案https://stackoverflow.com/a/7731051/626442,它不足以满足我的需求。

我已经编写了具有基本智能感知功能的编辑器(有关见解,请参见“通用智能感知的新实现和完整实现”)。我已经使用此编辑器实现了一些基本的SQL Server完成,但是在键入*密钥时,我不断弹出智能提示我想防止这种情况。目前,我正在执行以下操作:

private void TextArea_KeyDown(object sender, KeyEventArgs e)
{
    if (!e.Control && e.KeyCode == Keys.Space || e.Shift)
        return;

    IntellisenseEngine.DisplayCompletion(this, (char)e.KeyValue);
}

我最近重新开发了控件,并且我希望在现有限制上建立何时以及何时不显示洞察窗口的限制。我想要的一个子集是:

+------------------------------+-------------------+
¦   ¦ Modifier   ¦ Keys        ¦ Show Completion   ¦
¦---+------------+-------------¦-------------------¦
¦ 1 ¦ Shift      ¦ None        ¦ No                ¦
¦ 2 ¦ Shift      ¦ * (see note)¦ No                ¦
¦ 3 ¦ None       ¦ Space       ¦ No                ¦
¦ 4 ¦ Any        ¦ Arrow Keys  ¦ No                ¦
+------------------------------+-------------------+

等。注意,“ *”e.KeyCodeD8,这显然不是键盘不变的,并且取决于语言环境,因此是不够的。

本质上,我希望我的SQL智能感知像SQL Server Management Studio(SQLMS)一样,我的问题是:

  1. 如何检测独立于键盘区域设置的星号char键。

  2. 我应该施加哪些其他关键条件来抑制智能感知窗口的弹出并使它像SQLMS一样起作用?

我尝试使用

private void TextArea_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((Control.ModifierKeys & Keys.Control) != Keys.Control && <Detect Space Bar> || 
         (Control.ModifierKeys & Keys.Shift) == Keys.Shift && e.KeyChar == '*')
    return;

    IntellisenseEngine.DisplayCompletion(this, (char)e.KeyValue);
}

但是然后我有检测空格键的问题。

谢谢你的时间。

点刺

检查修改后的代码。希望它能工作

private void TextArea_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((Control.ModifierKeys & Keys.Contro) != Keys.Control && e.KeyChar == ' ' || 
         (Control.ModifierKeys & Keys.Shift) == Keys.Shift && e.KeyChar == '*')
    return;

    IntellisenseEngine.DisplayCompletion(this, (char)e.KeyValue);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在KeyDown事件上检测星号键

来自分类Dev

检测 KeyDown 事件上的单引号键

来自分类Dev

使用Enter键无法在ContextMenuStrip上触发KeyDown事件吗?

来自分类Dev

检测confbridge星号11中的多个键

来自分类Dev

未检测到星号用户事件

来自分类Dev

未检测到星号用户事件

来自分类Dev

通过“ ESC”键触发事件时,未在keydown事件上提交表单

来自分类Dev

检测多个Keyup / Keydown事件并在每个C#/ VB.Net上停止触发代码

来自分类Dev

在C ++中检测Enter / Return on Keydown事件

来自分类Dev

在C ++中检测Enter / Return on Keydown事件

来自分类Dev

捕获PictureBox上的KeyDown事件

来自分类Dev

如何在Windows Store / Modern UI App中的keydown事件上处理修改键?

来自分类Dev

具有WPF KeyDown事件的多个键

来自分类Dev

使用WPF KeyDown事件了解多个键

来自分类Dev

按住Shift键时的Keydown事件行为

来自分类Dev

Ace编辑器上的Keydown事件

来自分类Dev

removeEventListener不会删除keydown上的事件

来自分类Dev

表单中每个文本框的KeyDown事件并检测回车

来自分类Dev

在Windows上检测复制事件

来自分类Dev

使QLineEdit检测Tab键按下事件?

来自分类Dev

防止箭头键随着keydown事件滚动

来自分类Dev

KeyDown事件键不起作用-VB.net

来自分类Dev

javascript keydown事件无法识别此组合键

来自分类Dev

删除键不触发KeyUp和KeyDown事件

来自分类Dev

KeyDown事件键不起作用-VB.net

来自分类Dev

按下 shift 键时防止 keyDown 事件

来自分类Dev

如何在ExtJS面板上监听keydown事件

来自分类Dev

在Textbox KeyDown事件上设置jQuery自动完成功能

来自分类Dev

Backbone.js:在keydown事件上运行并显示api结果

Related 相关文章

热门标签

归档