Başka olayı çağırma

Başlatan t2, 31 Ekim 2013, 18:52:09

t2

Bir butonun click olayı aşağıdaki gibi olsun. kod yazan yerde istediğimiz  işler yapılıyor olsun
        private void button2_Click(object sender, EventArgs e)
        {
            // kod
        }


Başka bir olay olduğunda buton olayını nasıl çalıştırabiliirm? nasıl yazılacağını kestiremedim.
Mesela buton 5 basılınca buton 2 olayı da çalıştırılacak

        private void button5_Click(object sender, EventArgs e)
        {
            // başka kod

           button2_Click(this? vs? ne ?);      // < burada diğer buton olayı nasıl yazılacak?

        }

volkii

Solution explorerda formx.designer.cs yi açıp, button visual studio tarafından oluşturulurken, event kısmını şu şekilde değiştirirsen olur:

this.button5.Click += new System.EventHandler(this.button2_Click);

Tagli

Sanal olarak tıklamak için de bir fonksiyon olmalı. button5.Click() gibi. Doğrudan event handler'ı çağırmak yerine sanal tıklama yapabilirsin.
Gökçe Tağlıoğlu

Kabil ATICI

Buton click içeriğini ayır bir fonksiyon olarak yaz.

private void button2_Click(object sender, EventArgs e)
        {
            cagir_fonksiyon ();// kod
        }

private void button4_Click(object sender, EventArgs e) //öneğin
        {
            cagir_fonksiyon ();// kod
        }
ondan sonra fonksiyonu istediğin yerden çağır.
public void cagir_fonksiyon()
{
//kod
}
ambar7

barisertekin

c# button click event fire diye aratırsan farklı yöntemler bulabilirsin.
     
private void button2_Click(object sender, EventArgs e)
{
       //button3_Click(new object(), EventArgs.Empty);//bu da iş görür
       this.InvokeOnClick(button3, EventArgs.Empty);//bu daha iyi iş görür
}

private void button3_Click(object sender, EventArgs e)
{
       MessageBox.Show("Fire");
}

Kolay gelsin.

muhittin_kaplan

        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("buuton1 fire");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button1_Click(button2, e);
        }

fatih6761


t2


muhittin_kaplan

Bizden Elektrik Alamadın Tabi, Ondan Eliyorsun. Neyse Seneye ki En Güzel Kod Yarışmasına Gireriz bizde.

Tagli

Ben de yukarıda bahsetmiştim ama gözden kaçmış. Zaten fonksiyon adını yanlış hatırlamışım. C#'la en son 2008'de uğraşmıştım.
Gökçe Tağlıoğlu

muhittin_kaplan

Peki Buton u perform klikle yaptık ama olduda başka bir nesnenin bir olayını tetiklemek istedik ozaman T2, güzellik para etmiyor ondan diyorum.

fatih6761

Alıntı yapılan: muhittin_kaplan - 02 Kasım 2013, 01:16:38
Peki Buton u perform klikle yaptık ama olduda başka bir nesnenin bir olayını tetiklemek istedik ozaman T2, güzellik para etmiyor ondan diyorum.
Hocam modifier'lara göre bütün Button nesnelerinin Click eventine bu yolla ulaşabiliyorsunuz. Herhangi bir event için de direkt olayı tetiklemenin doğru olmadığını okumuştum bir yerde.
Bu event'lar kesme niteliğinde olduğundan thread'ler arası çakışma olmaması için bu yol daha güvenli(diye biliyorum...)

Tagli

Başka bir nesnenin olayını tetiklemek ihtiyacı hissediliyorsa bence tasarımda bir mantık hatası vardır, gözden geçirilmesi gerekir.
Gökçe Tağlıoğlu

t2

Programda mantık hatası var. Acemilik, cahillik diyelim. Butondaki kodları taşımak zor geldiğinden öyle yapmak istedim.  ihtiyac kadar hazır programı kurcalıyorum.

AsHeS

#14
-