Çözüm C# "PerformClick()" ne işe yarar?

Bu konu bir çözümü açıklamaktadır. Herhangi bir çözüm açıklanmadığını düşünüyorsanız konuyu rapor edebilirsiniz.
Katılım
28 Ocak 2020
Mesajlar
20.183
Makaleler
54
Çözümler
464
C# dilinde bir buton içindeki kodu diğer butonla tetiklemek için çok sayıda yöntem vardır.
Bunların içindeki en iyi ve en doğru çalışan özellik PerformClick() özelliğidir.

PerformClick() özelliği, herhangi bir metod içinde kullandığınız zaman başka bir buton içindeki kodun çalışmasını sağlar.

Uygulama:

Button2 kodu:


C#:
Button1.PerformClick();

Button1 Kodu:

C#:
MessageBox.Show("Technopat Sosyal");

Görüldüğü üzere Button2'ye basıldığı zaman Button1 içindeki kod devreye giriyor.
PerformClick() özelliği OOP, yani Nesne Tabanlı Programlama için oldukça önemli bir özelliktir.

Ek bilgi: Button içindeki kodu çalıştırmak için buton gerekli değildir. Bir görsele de tıklama eventi yaptığınız zaman yine çalışacaktır.

İyi çalışmalar.
 
C# dilinde bir buton içindeki kodu diğer butonla tetiklemek için çok sayıda yöntem vardır.
Bunların içindeki en iyi ve en doğru çalışan özellik PerformClick() özelliğidir.

PerformClick() özelliği, herhangi bir metod içinde kullandığınız zaman başka bir buton içindeki kodun çalışmasını sağlar.

Uygulama:

Button2 kodu:


C#:
Button1.PerformClick();

Button1 Kodu:

C#:
MessageBox.Show("Technopat Sosyal");

Görüldüğü üzere Button2'ye basıldığı zaman Button1 içindeki kod devreye giriyor.
PerformClick() özelliği OOP, yani Nesne Tabanlı Programlama için oldukça önemli bir özelliktir.

Ek bilgi: Button içindeki kodu çalıştırmak için buton gerekli değildir. Bir görsele de tıklama eventi yaptığınız zaman yine çalışacaktır.

İyi çalışmalar.
Muhteşemsin! <3
 
Bu propagate olan bir olay mi, yani "PerformClick" yaparak bu eventi sistem icinde ayni thread'de dolastirabilir miyim?

Btn1 : Btn2.PerformClick()

Btn2: Btn1.PerformClick()

Ustteki gibi birbirini cagiran 2 fonksiyon yazilmasi durumunda, kullanici UI'dan Btn1'e bastiginda StackOverflow mu yiyecek yoksa Akilli bir Propagate mekanizmasi var ve event sadece ilk trigger'dan sonra sonlanacak mi?
 
Bu propagate olan bir olay mi, yani "PerformClick" yaparak bu eventi sistem icinde ayni thread'de dolastirabilir miyim?

Btn1 : Btn2.PerformClick()

Btn2: Btn1.PerformClick()

Ustteki gibi birbirini cagiran 2 fonksiyon yazilmasi durumunda, kullanici UI'dan Btn1'e bastiginda StackOverflow mu yiyecek yoksa Akilli bir Propagate mekanizmasi var ve event sadece ilk trigger'dan sonra sonlanacak mi?
StackOverflow tabiki.
 
Bu propagate olan bir olay mi, yani "PerformClick" yaparak bu eventi sistem icinde ayni thread'de dolastirabilir miyim?

Btn1 : Btn2.PerformClick()

Btn2: Btn1.PerformClick()

Ustteki gibi birbirini cagiran 2 fonksiyon yazilmasi durumunda, kullanici UI'dan Btn1'e bastiginda StackOverflow mu yiyecek yoksa Akilli bir Propagate mekanizmasi var ve event sadece ilk trigger'dan sonra sonlanacak mi?
StackOverflow yersin.
 
Evet baktim dokumanina, kullanicinin click eventiyle bunu ayirt edemiyormus .nette.

JS tarafinda isTrusted(), stopPropagation() , stopImmediatePropagation() gibi advanced fonksiyonlar var.
@bitwise evet hocam, maalesef Stack yiyor.
.NET tarafında pek verimli kod parçaçğı bulmak mesela bu gibi şeyler için.
Class kullanmak dışında hazır fonklsiyon olarak test ettiklerimden en verimlisi bu doğrusu.

Mesajı yeni gördüm kusura bakmayın.
Kastettiğin şey eğer kullanıcının tıklayıp tıklamamasını ayırt etmekse bunu alternatif olarak Boolean ile yapabilirsin. Sadece 1 byte cık ram kaybı olur. Bu da büyük bir problem değil günümüz için.
 
Kastettiğin şey eğer kullanıcının tıklayıp tıklamamasını ayırt etmekse bunu alternatif olarak Boolean ile yapabilirsin. Sadece 1 byte cık ram kaybı olur. Bu da büyük bir problem değil günümüz için.

Mesele coupling, memory degil.
Event'i atan ile dinleyeni birbirine bagimli hale getirirsin o dedigin "1 byte cik" cozum ile. Bu da event-driven programlamanin icinden gecmek demek, direkt cagir dinleyen fonksiyonu daha iyi.
 

Yeni konular

Geri
Yukarı