1

我们正在使用 Syncfusion 框架 Essential Studio 中的 EditControl(工具箱中的组件)来编写一个小型代码编辑器。我们希望在按下快捷键CTRL + SPACE后弹出自动完成窗口,而不在 EditorWindow 中输入空格字符。

有没有办法禁止在 EditControl 中输入字符?

Private Sub editControl1_KeyDown(sender As Object, e As KeyEventArgs)
        If e.Control Then
        ' Do something here
            If e.KeyCode = Keys.Space Then
                EditControl1.ShowContextChoice()
                Dim context = EditControl1.ContextChoiceController
                For Each item As IConfigLexem In lexeme
                    context.Items.Add((item).BeginBlock, CStr(m_MethodComments(item.ID)), Me.EditControl1.ContextChoiceController.Images("Image" & item.FormatName))
                Next
            End If
        End If
    End Sub
4

1 回答 1

1

您可以在控件中设置键绑定,这将防止您需要捕获KeyDown事件。

例如,Sub在您配置控件属性的地方创建一些(Editor在我的示例中调用)并添加以下行:

AddHandler Editor.Commands.Add("Editor.ContextChoice").ProcessCommand, AddressOf Editor.ShowContextChoice

Editor.KeyBinder.BindToCommand(Keys.Control Or Keys.Space, "Editor.ContextChoice")

检查您的安装以获取此功能的工作示例。选择安装示例是个好主意,因为它们非常全面。

于 2016-06-13T12:42:11.617 回答