Biraz kafam karıştı. Özel etkinlik verilerine sahip olabilmek için EventArgs'tan türetilen sınıf oluşturabildiğimi biliyorum. Fakat bir şekilde baz sınıf EventArgs'ı kullanabilir miyim? Fare düğmesi tıklatıldığında, abone yönteminde her zaman "EventArgs e" parametresi bulunur. Bir şekilde veriyi bu şekilde geçirecek bir yöntem oluşturabilir miyim, yani onlar Eventargs üssünden geçecekler mi?Verileri türetilmiş sınıf oluşturmadan EventArgs'a geçirmek mümkün mü?
cevap
EventArgs
Veri türü raw'i kullanmak mümkün mü? Kesinlikle. MSDN göre: Hiç
This class contains no event data; it is used by events that do not pass state information to an event handler when an event is raised. If the event handler requires state information, the application must derive a class from this class to hold the data.
http://msdn.microsoft.com/en-us/library/system.eventargs.aspx
private event TestEventEventHandler TestEvent;
private delegate void TestEventEventHandler(EventArgs e);
private void button1_Click(object sender, EventArgs e)
{
TestEvent += TestEventHandler;
if (TestEvent != null)
{
TestEvent(new EventArgs());
}
}
private void TestEventHandler(EventArgs e)
{
System.Diagnostics.Trace.WriteLine("hi");
}
yapmalı mıyız? Herhangi bir sebepten dolayı düşünemiyorum eğer. Kendi tıklama oluşturmak isterseniz sadece çok kendi başınıza MouseEventArgs
örneğini:
MouseEventArgs m = new MouseEventArgs(System.Windows.Forms.MouseButtons.Left, 1, 42, 42, 1);
Hayır. EventArgs temel sınıfı, bazı standart olay temsilci türlerine izin vermenin bir yoludur. Sonuçta, verileri bir işleyiciye iletmek için, EventArgs alt sınıfını almanız gerekir. Bunun yerine gönderici argümanını kullanabilirsiniz, ancak bu gerçekten olayı tetikleyen nesne olmalıdır.
Sen Genel Türleri yaklaşımla EventArgs sınıfını kullanabilirsiniz. gerek yok, Yani
anyElement.SizeRectChanged += OnSizeRectChanged;
public void OnSizeRectChanged(object sender, Rect e){
//TODO abything using the Rect class
e.Left = e.Top = e.Width = e.Height = 50;
}
: olay Dinleme
if(SizeRectChanged != null){
Rect r = new Rect(0,0,0,0);
SizeRectChanged(this,r);
}
:
public EventHandler<Rect> SizeRectChanged;
olayı Raising: Bu örnekte, i dönüş türü olarak Rect sınıfını ile kullanacağı yeni etkinlik sınıfları veya delegeler oluşturmak için, yalnızca belirli bir türden geçen bir EventHandler öğesi oluşturun.
Bu yanlış görünüyor. [MSDN web sitesi örneği] (http://msdn.microsoft.com/en-us/library/db0etb8x%28v=vs.110%29.aspx), Rect veya TEventArg'ın EventArgs'tan devralması gerektiğini gösterir. Yanlış anlamadığım bir şey olmadığı sürece. –
Thomas, ben de bu kafa karıştırıcıyı buldum. Ama Jupi'nin önerisi benim için çalıştı. –
Wow ... keşke bunu uzun zaman önce biliyordum. EventHandler
- 1. Parametreleri Perl modülü yüklemesine geçirmek mümkün mü?
- 2. 2 tip nesneyi Restsharp'a geçirmek mümkün mü?
- 3. Özel döküm türetilmiş sınıf
- 4. gizle türetilmiş sınıf
- 5. Türetilmiş sınıf
- 6. Qt Q_OBJECT ile şablon türetilmiş C++ sınıflarını karıştırmak mümkün mü?
- 7. Paramiklikleri MODX Revolution yöneticisinin URL'deki eylemlerine geçirmek mümkün mü?
- 8. Angular 2'de bir uygulama girişini app.component'e geçirmek mümkün mü?
- 9. Değerleri doğrudan Fragman'dan Özel Görünüm'e geçirmek mümkün mü?
- 10. Verileri Firebase'den eşzamanlı olarak yüklemek mümkün mü?
- 11. Verileri iphone'un kulaklık girişine takmak mümkün mü
- 12. Türetilmiş sınıf şablonuna
- 13. Parametre, TypeConverter türetilmiş sınıf
- 14. CTRP türetilmiş sınıf
- 15. google.maps.OverlayView türetilmiş sınıf
- 16. Türetilmiş sınıf üyelerinden
- 17. Sınıf beyan etmeden nesne oluşturmak mümkün mü?
- 18. Türetilmiş sınıf yapıcı temel sınıf yapıcısını çağırıyor
- 19. Sınıf Diyagramında "Türetilmiş öznitelikler" nedir?
- 20. Türetilmiş bir sınıf nasıl yapılır?
- 21. Türetilmiş bir sınıfı, temel sınıf
- 22. Sınıf üyelerini bilmeden bir temel sınıf örneğinden türetilmiş sınıf örneği oluşturma
- 23. mümkün mü?
- 24. mümkün mü?
- 25. mümkün mü?
- 26. ? mümkün mü?
- 27. belirtilen koşullara eşit olmayan sorgu verileri mümkün mü?
- 28. Verileri Spark ile gruplara göre ölçeklendirmek mümkün mü?
- 29. Bir QObject türetilmiş sınıfın sınıf adını, bu sınıfın bir örneğini oluşturmadan elde etmenin bir yolu var mı?
- 30. CRTP kullanarak statik polimorfizmde saf sanal işlevi taklit mümkün mü?
Bir fare tıklaması olayı, sadece bunu yapamazsınız, tasarımınızda bir sorun olduğunu gösterir. – Will
Bunun neden bir tasarım problemi olduğunu açıklığa kavuşturma şansı var mı? Bir menü, bir düğme yığını olarak semantik olarak görüntülenemez, ilgili olay hangi menüde gerçekten 'button' düğmesine basıldığını sormanıza izin verir mi? Bir buton tıklamasıyla birlikte ekstra bilgi iletmek isteyerek hangi tasarım prensibini kırıyorsunuz? – Patrick