Я создал собственный элемент управления, унаследованный от DateTimePicker для обработки «непрерывной печати».
Public Class TimePicker
Inherits System.Windows.Forms.DateTimePicker
Private keyPressed As Boolean = False
Private switchPart As Boolean = True
Public Sub New()
MyBase.New()
End Sub
Private Shadows Sub KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
switchPart = True
If e.KeyCode >= Keys.NumPad0 AndAlso e.KeyCode <= Keys.NumPad9 Then keyPressed = True
If e.KeyCode = Keys.Left OrElse e.KeyCode = Keys.Right Then switchPart = False
End Sub
Public Shadows Sub ValueChanged(sender As Object, e As System.EventArgs) Handles MyBase.ValueChanged
' Setup variable to store last value chosen between changes
Static lastValue As Date = Date.FromOADate(0)
If (Value.Hour <> lastValue.Hour OrElse Value.Minute <> lastValue.Minute) AndAlso keyPressed AndAlso switchPart Then
SendKeys.Send("{RIGHT}")
keyPressed = False
End If
lastValue = Value
End Sub
End Class
И я был очень счастлив в течение многих лет. Но в последнее время он начал отказываться от компиляции формы, которая использует следующий код:
Private Sub dtpStartingTime_ValueChanged(sender As Object, e As EventArgs) Handles dtpStartingTime.ValueChanged
dtpEndingTime.Value = New DateTime(Math.Max(dtpStartingTime.Value.Ticks, dtpEndingTime.Value.Ticks))
End Sub
Значение ValueChanged в дескрипторах подчеркнуто красным, а сообщение
Ошибка BC30590 Event ' ValueChanged 'не может быть найден.
Но если я нажму F12 на подчеркнутом событии, это приведет меня к функции, определенной в моем пользовательском элементе управления. Так что это определенно найдено.
Что происходит? Уже 10 раз я очищаю раствор, чтобы, конечно, удалить папку bin. Это больше не работает.
Может кто-нибудь помочь мне?
Спасибо.
PS: я использую VS2019