2012-03-13 17 views
7

İçinde etiket bulunan GameButton adlı bir kullanıcı kontrolüm var. Kullanıcı denetimini formuma eklediğimde ve buna bir tıklama olayı eklediğimde, özel düğmenin arka planını tıklattığınızda tetiklenir, ancak etiketteki metin değil? Kullanıcı kontrolleri kodunun içine bir grup tıklama etkinliği eklemeden bunu nasıl düzeltebilirim?Kullanıcı denetimi tıklama olayı, denetim içindeki metne tıklandığında çalışmıyor.

düzenleme: UI çerçevesi: Ben doğru anlama am mı

+0

UI çerçevesi (Win, WPF, Webforms MVC)? –

+0

üzgün, – Oztaco

+0

Ayrıca etiketleri dahil kaçının winforms Sorunuzla ilgisi olmayan çok az şey var (ör. görsel-stüdyo) –

cevap

10

winforms, tıklandığında, ancak etiket üzerinde tıklandığında değilken olayı olacaktır GameButton usercontrol - ve de istiyorum. Bunun nedeni, etiketin (kontrol) arka planın üstünde olmasıdır. Bu nedenle, etiketinizi tıklama etkinliği ile de kaydetmeniz gerekir. Bu, tasarımcıda elle veya sayfadaki her kontrol için programlı olarak yapılabilir. Eğer UserControl HER kontrolünü yapmak istiyorsanız

, UserControl'ın OnLoad olayı içine bu koymak ve her denetim için aynı tıklama olayını kullanabilirsiniz:

foreach(Control c in this.Controls){ 
    c.Click += new EventHandler(yourEvent_handler_click); 
} 

public void yourEvent_handler_click (object sender, EventArgs e){ 
    //whatever you want your event handler to do 
} 

DÜZENLEME: en iyi yolu oluşturmaktır Kullanıcı kontrolündeki olay işleyici özelliğini tıklayın. Bu şekilde, kullanıcı kontrolünüze bir tıklama olayı eklediğinizde/kaldırdığınızda, kullanıcı denetimi içindeki tüm kontrollere otomatik olarak ekler/kaldırır. Bu yardımcı olur

Umut:

public new event EventHandler Click { 
     add { 
      base.Click += value; 
      foreach (Control control in Controls) { 
       control.Click += value; 
      } 
     } 
     remove { 
      base.Click -= value; 
      foreach (Control control in Controls) { 
       control.Click -= value; 
      } 
     } 
    } 

Bu da başka post başına gibidir!

+0

Özel düğmelerime tıklatma etkinliklerini tasarımcıda normal düğmelerle yapabilmeyi istedim, ancak – Oztaco

+0

etiketini etkilemiyorlar. Anladığımdan emin değilim @EfeOzturkoglu. Kullanıcı denetiminizin, bir olay işleyicisi ile herhangi bir yere tıklayabileceğiniz normal bir düğme gibi olmasını ister misiniz? – ImGreg

+0

Evet, her seferinde denetleyiciye ve etiketine bir işleyici eklemek istemediğim gibi sadece – Oztaco

0

etiketlerinizden "etkinleştirmek" özelliği "Yanlış değerine fare olayları kullanıcı denetiminde çalışacak olun.

İlgili konular