İ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
Yeni bir açmak Visual Basic Windows Application projesi ve adlı bir form oluşturmak Form1.
İki düğme ve bir etiket eklemek Form1.
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
Ü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
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
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)