我们正在使用Syncfusion框架Essential Studio中的EditControl(来自工具箱的组件)来编写一个小代码编辑器。 我们希望在按下快捷键 CTRL + SPACE 后不弹出编辑器窗口中的空格字符来弹出自动完成窗口。
有没有办法禁止在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
答案 0 :(得分:1)
您可以在控件中设置键绑定,这将阻止您需要捕获KeyDown
事件。
例如,创建一些Sub
来配置控件的属性(在我的示例中称为Editor
)并添加以下行:
AddHandler Editor.Commands.Add("Editor.ContextChoice").ProcessCommand, AddressOf Editor.ShowContextChoice
Editor.KeyBinder.BindToCommand(Keys.Control Or Keys.Space, "Editor.ContextChoice")
检查安装以获取此功能的实际示例。选择安装样本是一个好主意,因为它们非常全面。