Aracılığıyla paylaş


Visual Basic'te olay işleyicisini çağırma

Olay, bir program bileşeni tarafından tanınan ve yanıt vermek üzere kod yazabileceğiniz bir eylem veya oluşumdur (fare tıklaması veya kredi sınırı aşılmış gibi). Olay işleyicisi, bir olaya yanıt vermek için yazdığınız koddur.

Visual Basic'te olay işleyicisi bir Sub yordamdır. Ancak, normalde diğer Sub yordamlarla aynı şekilde çağırmazsınız. Bunun yerine, prosedürü olay için bir işleyici olarak tanımlarsınız. Bunu bir Handles yan tümce ve WithEvents değişkenle veya AddHandler Deyimiyle yapabilirsiniz. Handles Yan tümcesi kullanmak, Visual Basic'te bir olay işleyicisi bildirmenin varsayılan yoludur. Bu, tümleşik geliştirme ortamında (IDE) programladığınızda tasarımcılar tarafından olay işleyicilerinin yazılıyor olmasıdır. AddHandler deyimi, çalışma zamanında olayları dinamik olarak oluşturmak için uygundur.

Olay gerçekleştiğinde, Visual Basic olay işleyici yordamını otomatik olarak çağırır. Olaya erişimi olan tüm kodlar RaiseEvent Deyimi yürüterek bunun oluşmasına neden olabilir.

Aynı olayla birden fazla olay işleyicisi ilişkilendirebilirsiniz. Bazı durumlarda bir işleyiciyi bir olaydan ayırabilirsiniz. Daha fazla bilgi için bkz. Olaylar.

Handles ve WithEvents kullanarak bir olay işleyicisi çağırın

  1. Olayın bir Event Deyimi ile bildirildiğinden emin olun.

  2. Anahtar sözcüğünü kullanarak modül veya sınıf düzeyinde bir nesne değişkeni bildirin WithEvents . Bu değişkenin As yan tümcesi, olayı tetikleyen sınıfı belirtmelidir.

  3. Olay işleme Sub yordamının bildiriminde değişkeni ve olay adını belirten Handles bir WithEvents yan tümcesi ekleyin.

  4. Olay gerçekleştiğinde, Visual Basic otomatik olarak Sub yordamını çağırır. Kodunuz, olayın gerçekleşmesini sağlamak için bir RaiseEvent deyimi kullanabilir.

    Aşağıdaki örnek bir olayı ve olayı oluşturan sınıfa başvuran bir WithEvents değişkeni tanımlar. Olay işleme Sub yordamı, işlediği sınıfı ve olayı belirtmek için bir Handles yan tümcesi kullanır.

    Public Class RaisesEvent
        Public Event SomethingHappened()
        Dim WithEvents happenObj As New RaisesEvent
        Public Sub ProcessHappen() Handles happenObj.SomethingHappened
            ' Insert code to handle somethingHappened event.
        End Sub
    End Class
    

AddHandler kullanarak olay işleyicisi çağırma

  1. Olayın bir Event deyimiyle bildirildiğinden emin olun.

  2. Olay işleme yordamını olaya dinamik olarak bağlamak için Sub yürütür.

  3. Olay gerçekleştiğinde, Visual Basic otomatik olarak Sub yordamını çağırır. Kodunuz, olayın gerçekleşmesini sağlamak için bir RaiseEvent deyimi kullanabilir.

    Aşağıdaki örnek, yordamını bir olay işleyicisi olarak ilişkilendirmek amacıyla, oluşturucudaki OnFormClosing kullanır.

    Sub New()
        InitializeComponent()
        AddHandler Me.FormClosing, AddressOf OnFormClosing
    End Sub
    
    Private Sub OnFormClosing(sender As Object, e As FormClosingEventArgs)
        ' Insert code to deal with impending closure of this form.
    End Sub
    

    RemoveHandler deyimini yürüterek bir olay işleyicisini bir olaydan ayırabilirsiniz.

Ayrıca bakınız