Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => Visual C# => Konuyu başlatan: t2 - 31 Ekim 2013, 18:52:09

Başlık: Başka olayı çağırma
Gönderen: t2 - 31 Ekim 2013, 18:52:09
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?

        }

Başlık: Ynt: Başka olayı çağırma
Gönderen: volkii - 31 Ekim 2013, 19:08:09
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);
Başlık: Ynt: Başka olayı çağırma
Gönderen: Tagli - 31 Ekim 2013, 19:18:53
Sanal olarak tıklamak için de bir fonksiyon olmalı. button5.Click() gibi. Doğrudan event handler'ı çağırmak yerine sanal tıklama yapabilirsin.
Başlık: Ynt: Başka olayı çağırma
Gönderen: Kabil ATICI - 31 Ekim 2013, 21:37:17
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
}
Başlık: Ynt: Başka olayı çağırma
Gönderen: barisertekin - 31 Ekim 2013, 21:58:03
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.
Başlık: Ynt: Başka olayı çağırma
Gönderen: muhittin_kaplan - 31 Ekim 2013, 22:40:29
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("buuton1 fire");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button1_Click(button2, e);
        }
Başlık: Ynt: Başka olayı çağırma
Gönderen: fatih6761 - 31 Ekim 2013, 23:14:53
button5.PerformClick();
Başlık: Ynt: Başka olayı çağırma
Gönderen: t2 - 01 Kasım 2013, 10:17:24

Alıntı yapılan: fatih6761 - 31 Ekim 2013, 23:14:53
button5.PerformClick();

En güzeli buymuş.
Başlık: Ynt: Başka olayı çağırma
Gönderen: muhittin_kaplan - 01 Kasım 2013, 12:26:38
Bizden Elektrik Alamadın Tabi, Ondan Eliyorsun. Neyse Seneye ki En Güzel Kod Yarışmasına Gireriz bizde.
Başlık: Ynt: Başka olayı çağırma
Gönderen: Tagli - 01 Kasım 2013, 13:37:49
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.
Başlık: Ynt: Başka olayı çağırma
Gönderen: 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.
Başlık: Ynt: Başka olayı çağırma
Gönderen: fatih6761 - 02 Kasım 2013, 04:01:21
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...)
Başlık: Ynt: Başka olayı çağırma
Gönderen: Tagli - 02 Kasım 2013, 08:19:47
Başka bir nesnenin olayını tetiklemek ihtiyacı hissediliyorsa bence tasarımda bir mantık hatası vardır, gözden geçirilmesi gerekir.
Başlık: Ynt: Başka olayı çağırma
Gönderen: t2 - 02 Kasım 2013, 09:29:58
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.
Başlık: Ynt: Başka olayı çağırma
Gönderen: AsHeS - 03 Kasım 2013, 12:58:06
-