własny komponent i jego zdarzenia

0

Stworzyłem komponent który składa się z buttona i trzech textbox-ów. I teraz jak z niego korzystam chciałbym dodać do niego zdarzenie Click, które będzie się odnosiło tylko do buttona. Jak to zrobić?

0

Nie wiem czy dobrze Cię zrozumiałem ale wydaje mi się, że chodzi Ci o prostą delegację:

public class Component
{
    public delegate void OnClickEventHandler(object sender, EventArgs e);
    public event OnClickEventHandler OnClick;

    protected void MyButton_Click(object sender, EventArgs e)
    {
        if (OnClick != null)
            OnClick(sender, e);
    }
}

i reszta standardowo:

component.OnClick += new Component.OnClickEventHandler(component_OnClick);

...jeżeli nie o to chodziło to sorki :P

0

No wydaje mi się że o to chodziło tylko jak to zrobić żeby przypisać zdarzenie właśnie do button1 który jest częścią mojego komponentu?
Bo to zdarzenie wywołuje zdarzenie dla całego komponentu.

0

Chyba jednak Cię nie zrozumiałem :P

Myślałem, że chodzi Ci o sytuację, w której masz komponent zawierający kilka kontrolek (w tym button1) i chciałbyś obsłużyć zdarzenie tego button1 ale nie wewnątrz komponentu tylko na zewnątrz? Tak Cię zrozumiałem i dlatego przedstawiłem to w taki sposób... no a teraz wydaje mi się, że chcesz po prostu obsłużyć zdarzenie OnClick wewnątrz komponentu??

jeżeli tak to napisz po prostu:

button1.OnClick += new button1.OnClickEventHandler(component_OnClick);

protected void button1_OnClick(object sender, EventArgs e)
{
    //ciało metody
}

Pozdrawiam :)

0

Mi się wydaje że to teraz mnie nie zrozumiałeś :D

Mam Stworzony nowy komponent:

   public partial class NewControl : UserControl
    {
        public NewControl()
        {
            InitializeComponent();
        }
        // tu są jakieś zmienne i Properties
    }

Komponent ten składa się z kolejno ułożonych button1, textbox1, textbox2, label1

Teraz w klasie Form1 tworzę sobie ten komponent
NewControl nowy = new NewControl();
I poleceniem nowy.Click +=.... chciałbym dodać zdarzenie które będzie się wywoływało po naciśnięciu buttona.
Wydaje mi się że chodzi o Twojego pierwszego posta. Ale sprawdzałem i coś to nie działa:/

0
    public partial class NewControl : UserControl
    {
        private Button btn;
        public NewControl()
        {
            InitializeComponent();
            btn.Click += (sender, e) => { if (BtnClick != null) BtnClick(this, e); };
        }
        public event EventHandler BtnClick;
    }
0

Chyba nareszcie się jasno wyraziłem ;P
Wszystko bangla.
Thx

0

Witam,

A mam pytanko czy pojawił Ci się event ten nowo dodany w zakładce eventstów?

1 użytkowników online, w tym zalogowanych: 0, gości: 1