Syncfusion - Нет пробела-символа после нажатия сочетаний клавиш CTRL + ПРОБЕЛ

Мы используем EditControl (компонент из набора инструментов) из фреймворка Syncfusion Essential Studio для написания небольшого редактора кода. Мы хотим открыть окно автозаполнения после нажатия сочетания клавиш CTRL + ПРОБЕЛ без ввода символа пробела в 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

person Nano    schedule 13.06.2016    source источник
comment
Вы пробовали e.Handled = true?   -  person A Friend    schedule 13.06.2016


Ответы (1)


Вы можете настроить привязки клавиш в элементе управления, что избавит вас от необходимости перехватывать событие KeyDown.

Например, создайте Sub, где вы настраиваете свойства элемента управления (в моем примере он называется Editor), и добавьте следующие строки:

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

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

Проверьте свою установку на рабочий пример этой функциональности. Рекомендуется установить образцы, поскольку они очень полны.

person Robin Mackenzie    schedule 13.06.2016
comment
Спасибо за ваш ответ и пример того, как это сделать с привязками. Но он по-прежнему вводит пробел в текстовое поле. - person Nano; 14.06.2016