Я сейчас пишу опрос о питании. Пользователи одной страницы могут использовать клавиши со стрелками для переключения между размерами порций пищи. Есть 49 изображений каждого предмета. В настоящее время, если вы удерживаете клавишу со стрелкой вниз, она приостанавливается и переключается на изображение только после отпускания. Мне бы хотелось, чтобы он показывал каждое пройденное изображение, а не пропускал все.
Я пытался использовать цикл while и предложение if вместо select case, но просто заморозил программу и, если у меня возникла такая же проблема
Это класс для переключения между изображениями и определения ключей
Public Class Carousel
Public Shared Function Slideshow(picturebox As Object, food As String, key As Object, file As Object)
Dim fullPath As String = IO.Path.GetFullPath(My.Resources.ResourceManager.BaseName)
fullPath = fullPath.Replace("\bin\Debug\Study_1b.Resources", "")
Dim bHandled As Boolean
Select Case key
Case Keys.Right
If file.count < 49 Then
file.count += 1
picturebox.Image = Image.FromFile(fullPath & $"\Resources\{food}_{file.count}.jpg")
bHandled = True
End If
Case Keys.Left
Console.WriteLine(file.count)
While file.count > 0
file.count -= 1
picturebox.Image = Image.FromFile(fullPath & $"\Resources\{food}_{file.count}.jpg")
bHandled = True
End While
End Select
End Function
End Class
Это часть, из которой он загружен и называется
Private Sub ES1Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.KeyPreview = True
count = Random.rndCount()
fullPath = fullPath.Replace("\bin\Debug\Study_1b.Resources", "")
pbes21.Image = Image.FromFile(fullPath & $"\Resources\Por_{count}.jpg")
End Sub
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
Carousel.slideshow(pbes21, "Por", keyData, Me)
End Function