#vb.net #winforms #telerik
#vb.net #winforms #telerik
Вопрос:
Я выполняю проверку базы данных для события проверки текстового поля. Я также использую e.Cancel = True, если данные недействительны. Проблема в том, что событие проверки запускается дважды, в конечном итоге заставляя SQL также выполняться дважды, и я не хочу, чтобы это произошло (потому что иногда запрос требует больших ресурсов).
Шаги:
- Перетащите RadTextBox и RadLabel в форму.
- Для события проверки RadTextBox используйте приведенный ниже код.
- Запустите приложение, сфокусируйте RadTextBox и затем щелкните по ярлыку. Затем, если вы проверите окно вывода Visual studio, вы заметите, что консоль зарегистрировала, что событие проверки фактически было запущено дважды. (Событие запускается дважды только при попытке щелкнуть RadButton или RadLabel)
Я заметил эту ошибку, когда проверял свои запросы в профилировщике SQL Server, и запрос выполняется дважды, в чем нет необходимости. Я также проверил с помощью реальных wincontrols, и в них этой проблемы не существует.
Как мне исправить эту проблему?
Вот пример кода для репликации поведения
Private Sub RadTextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles RadTextBox1.Validating
Console.WriteLine("VALIDATING EVENT TRIGGERED")
e.Cancel = True
End Sub
Ответ №1:
Похоже, это известная проблема с RadTextBox: ссылка на проблему
Возможно, вы можете попробовать RadTextBoxControl для своих нужд?
Комментарии:
1. Я зарегистрировал эту ошибку в telerik, и они согласились, что это на самом деле ошибка. У RadTextBoxControl та же проблема.