Dynamicky vytvořená/é událost/i – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Dynamicky vytvořená/é událost/i – .NET – Fórum – Programujte.comDynamicky vytvořená/é událost/i – .NET – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Mutagen0
Super člen
12. 3. 2014   #1
-
0
-

Zdravím,

trošku jsem se do toho zamotal a vůbec nevim jak tohle řešit. Docela dlouho jsem nic nedělal, tak trošku jsem pozapomněl. Jde mi o to, že potřebuju podle db rozkouskovat tabControl (dobře to je v pohodě, podle měsíce si vytvořím určitěj tabPage), ale problem nastává v tom, že nevím jak řešit, že si v každým tabPage vytvořím DataGridView kodem

DataGridView dgv = new DataGridView();
TabMonth.TabPages["Leden"].Controls.Add(dgv);
...

A jde mi o to, že když mu přidám i událost CellMouseDown tak jestli mi stačí jen jeden takhle event vytvořit a bude to fungovat i pro ostatní DataGridView na unor, březen apod?

Díky moc za informace, či popostrčení jak to řešit.

Nahlásit jako SPAM
IP: 89.190.90.–
Reklama
Reklama
P
~ Anonymní uživatel
193 příspěvků
12. 3. 2014   #2
-
0
-

Nevytvaris event, ale handler toho eventu, a ten staci vytvorit jen jeden. Musis ho priradit k eventu kazdeho DataGridView co vytvaris. V argumentu sender handleru pak budes mit instanci DataGridView, ktera event vyvolala. 

foreach (TabPage tp in tabControl1.TabPages)
{
    DataGridView dgv = new DataGridView();
    dgv.CellMouseDown += dgv_CellMouseDown;
    tp.Controls.Add(dgv);
}

...

void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    ...
}
Nahlásit jako SPAM
IP: 85.93.116.–
Mutagen0
Super člen
12. 3. 2014   #3
-
0
-

#2 P
Super díky :) Hned to vyzkouším :)

Nahlásit jako SPAM
IP: 89.190.90.–
Mutagen0
Super člen
12. 3. 2014   #4
-
0
-

Jen, mám jeden takovej problem, když chci s tím DGV pracovat dál, jak to můžu udělat? Vyplnovat,mazat, apod.

Nahlásit jako SPAM
IP: 89.190.90.–
P
~ Anonymní uživatel
193 příspěvků
13. 3. 2014   #5
-
0
-

Bud budes mit promennou pro kazdou instanci DataGridView, nebo je budes nacitat treba takto:

foreach (TabPage tp in tabControl1.TabPages)
{
    DataGridView dgv = new DataGridView();
    dgv.Name = "dgv";
    dgv.CellMouseDown += dgv_CellMouseDown;
    tp.Controls.Add(dgv);
}

...

void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    ...
}

...
var dgv = (DataGridView)tabControl1.TabPages["Leden"].Controls["dgv"];
Nahlásit jako SPAM
IP: 85.93.116.–
Mutagen0
Super člen
13. 3. 2014   #6
-
0
-

#5 P
Vyřešil jsem to trošku podobně, ale je to trošku prasárna mi příjde. Kdyžtak postnu to sem a kdyby někdo měl nápad jak to udělat elegantněji, budu rád za nápad :)

http://pastebin.com/Viawbhsc

Nahlásit jako SPAM
IP: 89.190.90.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 44 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý