2016-06-21 3 views
0

Я использую событие click в окне изображения, которое можно активировать только после некоторых действий.Отключить событие picturebox_click на vb.net

Private Sub PictureBox_Click_1(sender As Object, e As EventArgs) Handles PictureBox.Click 

Но я хочу, чтобы отключить эту щелчок без использования picturebox.enabled=false потому что изменяет первоначальный цвет на серый.

Как я могу это сделать? Спасибо!

+0

удалить событие щелчка? это можно найти в свойствах событий в окне изображения. – Werdna

+0

@Werdna вы уверены. и как его использовать, когда я хочу использовать картинку? – noidea

+1

Вы можете настроить логическое значение, я думаю, вам нужно показать нам, что вы пробовали – Werdna

ответ

1

Есть две возможности.

  1. Вы используете логическое значение, указывающее, что вы не хотите запускать логику в обработчике событий.

    Вот пример:

    Private _usePictureBoxEvent as Boolean = True 
    
    Private Sub PictureBox_Click_1(sender As Object, e As EventArgs) Handles PictureBox.Click 
        If _usePictureBoxEvent Then 
         'Do your event stuff here 
        End If 
    End Sub 
    

    Чтобы отключить обработку событий:

    _usePictureBoxEvent = False 'the event will still be activated but we'll do nothing 
    
  2. Динамически подписаться на событие: AddHandler и RemoveHandler

    Вот пример:

    Public Sub New() 
        'VS calls this, don't touch 
        InitializeComponents() 
    
        'We add a listener to this event 
        AddHandler Me.PictureBox.Click, AddressOf PictureBox_Click_1 
    
        'Other stuff 
    End Sub 
    
    Private Sub PictureBox_Click_1(sender As Object, e As EventArgs) 'No more Handles clause 
        'Do your event stuff 
    
    End Sub 
    

    И остановить событие от запуска:

    'Anywhere in your code 
    RemoveHandler Me.PictureBox.Click, AddressOf PictureBox_Click_1 
    
0

Если вы используете статический обработчик событий (Ручки [...]), это немного сложнее удалить.

Самое простое и чистое решение - иметь логическое значение и проверять его значение на событии (и изменять его там, где вам нужно разрешить/запретить его).

Или изменить его на нестатический обработчик: AddHandler/RemoveHandler.

Другие решения предполагают унаследовать PictureBox и переопределять метод OnClick.

Смежные вопросы