Aracılığıyla paylaş


İzlenecek yol: Olay Bildirme ve Oluşturma (Visual Basic)

Bu izlenecek yolda bildirmek ve adında bir sınıf olaylarını gösterilmiştir Widget.Adımları tamamladıktan sonra Yardımcısı konuyu okumak isteyebilirsiniz İzlenecek yol: Olayları İşleme (Visual Basic), olayları nasıl gösterir Widget bir uygulamada durum bilgilerini sağlamak için nesneler.

Pencere öğesi sınıfı

Sahip olduğunuz süre varsayalım bir Widget sınıfı.Sizin Widget sınıf uzun zaman alabileceği bir yöntem varsa ve çeşit tamamlama göstergesi bekletme konumuna geçirebilmek için uygulama.

Tabii ki yapabilirsiniz Widget nesne bir tamamlanma yüzdesi iletişim kutusu göster, ancak daha sonra bu iletişim kutusu içinde kullanılan her projede kalmış Widget sınıfı.Nesne tasarımı en iyi bir ilkesini kullanan bir nesne tanıtıcısının kullanıcı arabirimi uygulama yapmasını sağlamaktır — sürece bütün amacı nesne, bir form veya iletişim kutusu yönetmektir.

Amacı, Widget eklemek daha iyi, bu nedenle diğer görevleri gerçekleştirmek için bir PercentDone olay ve let yordamı çağıran Widgetın yöntemlerini işlemek olay ve görüntü durumunu güncelleştirir.PercentDone Olay da görevi iptal etme için bir mekanizma sağlar.

Bu konu için kod örneği oluşturmak için

  1. Yeni bir açmak Visual Basic Windows Application projesi ve adlı bir form oluşturmak Form1.

  2. İki düğme ve bir etiket eklemek Form1.

  3. Nesneler, aşağıdaki tabloda gösterildiği şekilde adlandırın.

    Nesne

    Özellik

    Ayar

    Button1

    Text

    Görevi Başlat

    Button2

    Text

    Cancel

    Label

    (Name), Text

    lblPercentDone, 0

  4. Üzerinde Proje menüsünden seçin Add Class adında bir sınıf eklemek için Widget.vb projesi.

Pencere öğesi sınıfı için bir olay bildirmek için

  • Use Event bir olay bildirmek için anahtar sözcük Widget sınıfı.Bir olay olabilir Not ByVal ve ByRef bağımsız olarak Widget's PercentDone olay göstermektedir:

    Public Event PercentDone(ByVal Percent As Single, 
                             ByRef Cancel As Boolean)
    

Çağıran nesne aldığında bir PercentDone olay, Percent bağımsız değişkeni tam görev yüzdesini içerir.Cancel Bağımsız değişkeni ayarlanabilir True olay yöntemini iptal etmek.

[!NOT]

Yordamlar, aşağıdaki istisnalar bağımsız değişkenleri gibi olay bağımsız değişkenleri bildirebilirsiniz: olaylar olamaz Optional veya ParamArray bağımsız değişkenleri ve olayların dönüş değerleri yoktur.

PercentDone Tarafından olay ortaya LongTask yöntemi, Widget sınıfı.LongTaskiki baðýmsýz deðiþken alýr: süre çalışma ve en az süre önce yapılması yöntemi görünür LongTask yükseltmek için duraklar PercentDone olay.

PercentDone olayı oluşturmak için

  1. Erişimi kolaylaştırmak için Timer Bu sınıf tarafından kullanılan özellik eklemek bir Imports , sınıf modülünün Tanımlamalar bölümünde üst ifadesine yukarıda Class Widget ifadesi.

    Imports Microsoft.VisualBasic.DateAndTime
    
  2. Aşağıdaki kodu Widget sınıfına ekleyin:

    Public Sub LongTask(ByVal Duration As Single, 
                        ByVal MinimumInterval As Single)
        Dim Threshold As Single 
        Dim Start As Single 
        Dim blnCancel As Boolean 
    
        ' The Timer property of the DateAndTime object returns the seconds 
        ' and milliseconds that have passed since midnight.
        Start = CSng(Timer)
        Threshold = MinimumInterval
    
        Do While CSng(Timer) < (Start + Duration)
            ' In a real application, some unit of work would 
            ' be done here each time through the loop. 
            If CSng(Timer) > (Start + Threshold) Then 
                RaiseEvent PercentDone( 
                Threshold / Duration, blnCancel)
                ' Check to see if the operation was canceled. 
                If blnCancel Then Exit Sub
                Threshold = Threshold + MinimumInterval
            End If 
        Loop 
    End Sub
    

Uygulamanızın çağırdığında LongTask yöntemi, Widget raises sınıfı PercentDone olay her MinimumInterval saniye.Olay döndüğünde, LongTask bakar, Cancel bağımsız değişkeni ayarlandığı True.

Birkaç kelimesi burada gereklidir.Basitleştirmek için LongTask yordam varsayar bildiğiniz önceden görev ne kadar sürer.Neredeyse hiçbir zaman böyledir.Hatta boyutu parçalar görevleri bölme zor olabilir ve genellikle de en önemlidir ne kullanıcılar için sadece bir şey oluyor göstergesi ulaşmadan geçen zamanı miktarıdır.

Bu örnekte başka bir kusur anlaþýlmaz.Timer Özelliği; gece yarısından itibaren geçen saniye sayısını döndürür Bu nedenle, yalnızca gece yarısından önce başlatılmışsa uygulamanın kalmış.Zamanı ölçmek için daha dikkatli bir yaklaşım bu gibi sınır koşulları dikkate almadan veya gibi özellikleri kullanarak bunları tamamen önlemek Now.

Şimdi Widget sınıfı olayları yükseltmek, sonraki adım adım işlem aşamaları için taşıyabilirsiniz.İzlenecek yol: Olayları İşleme (Visual Basic)nasıl kullanılacağını göstermektedir WithEvents bir olay işleyicisi ile ilişkilendirmek için PercentDone olay.

Ayrıca bkz.

Görevler

İzlenecek yol: Olayları İşleme (Visual Basic)

Başvuru

Timer

Now

Diğer Kaynaklar

Olaylar (Visual Basic)