2014-04-07 7 views
0

У меня есть быстрый вопрос о событии button.click в VB.NET.Кнопка Click Event

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

Например, он будет переключаться между двумя цветами при нажатии кнопки и останавливать переключение цветов при отпускании кнопки (я не хочу этого делать, но это полезный пример).

Как это осуществить? Событие Button.Click запускается только после того, как вы нажали кнопку И отпустили кнопку, тогда как мне нужно разделить эти два на обработчик кликов и обработчик релиза.

Приветствия

+0

Какого языка вы используете? – ArmaAK

+0

О, это было глупо, VB.NET, я сейчас обновлю его. Приветствия. – Phynix

+0

Ну, честно говоря, я ничего не знаю о VB.NET, но нашел этот сайт: http://www.homeandlearn.co.uk/NET/nets10p2.html, который может вам помочь. У вас может быть цикл while, как в этом псевдокоде: onButtonClick: while (button.isClicked): (что-то здесь) -Edit: способ форматирования комментариев делает его уродливым, но вы должны получить главное идея. – ArmaAK

ответ

0

Вместо использования кнопки для этого (вы можете, если вы хотите), я хотел бы использовать панель и таймер. Вот и пример: (я объясню позже)

Предположим, наш таймер называется ButtonTimer и наша панель называется EventPanel

Давайте также использовать пример вы дали. Давайте назовем нашим PictureBox AltPicturebox

Установите ButtonTimer.Interval 1 и ButtonTimer.Enabled Истинного

Private Sub ButtonTimer_Tick(sender As Object, e as EventArgs) Handles ButtonTimer.Tick 
    Select Case(MouseButtons) 
     Case MouseButtons.Left 'checks if left mouse click is down 
      If (MousePosition.X > EventPanel.Left) & (MousePosition.X < EventPanel.Right) & (MousePosition.Y > EventPanel.Top) & (MousePosition.Y < EventPanel.Bottom) Then 'checks if mouse is within the EventPanel control 
       AltPictureBox.Image = Image.FromFile("C:\Image1.png") 'sets the image of picturebox 
     Case Else 
      AltPictureBox.Image = Imag.FromFile("C:\OriginalImage.png") 
    End Select 
End Sub 

Надеется, что это помогло,

Rodit