Spusteni udalosti jine komponenty ve VS2012

Od: Datum: 19.07.13 15:54 odpovědí: 7 změna: 20.07.13 11:14

Dobry den,

potreboval bych poradit. Delam jednu aplikaci ve visual studiu (C#) a mam ve formulari vytvorene tlacitko a na nej mam vazanou udalost onclick. V teto udalosti je docela dlouhy kod. Nyni mam druhe tlacitko, na ktere kdyz kliknu bych chtel aby se spustilo to co je v udalosti pro prvni tlacitko. Chtel bych udelat neco takoveho:

private void button2_Click(object sender, EventArgs e) {

button1_Click();

}

Ale toto proste nefunguje :( Poradi nekdo prosim?


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Datum: 19.07.13 16:01
avatar

Co tak přesunout tenhle dlouhý kód dovnitř samostatné metody uvnitř té classy a pak to volat takhle:

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

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

Jestli nepotřebujete vědět, na co se kliklo, bude to stačit i bez parametrů.

Ohodnoceno: 0x
 
Od: ostin
Datum: 19.07.13 18:46

Ano to je jedna z moznosti, ale ted jsem zjistil, ze pitrebuji na stisk tlacitka zvalidovat data v dataGridview metodou dataGridView1_CellValidating, nevite jak vyresit toto?

Datum: 19.07.13 19:48
avatar

Tomu nerozumím.

.Cellvalidating() jde normálně zavolat, ne?

Jestli vaše tlačítko provádí změny v modelu, který je zobrazen do dataGridView, tak se všechny odpovídající validační eventy snad spustí automaticky.

Ohodnoceno: 0x
 
Od: ostin
Datum: 20.07.13 00:02

Asi to spatne vysvetluji. Mam ve formulari komponentu dataGridView a u ni mam nastavenou udalost dataGridView1_CellValidating, kde je kod, ktery slouzi ke kontrole obsahu jednotlivych bunek, ktere zrovna uzivatel vyplnil. V pripade spatneho vyplneni se nastavi e.Cancel a nepusti ho to z patricne bunky.

Pokud ale kliknu na tlacitko mimo zalozku kde je umisteny dataGridView, tak me to nespusti tu validaci, tudiz ji potrebuji spustit pri stisku tlacitka jako prvni, ale nevim jak to udelat pac za udalost ma 2 argumenty "sender" a "e". A to je to na co se ptam :) S tim momentalne zapasim ale bez uspesne :(

Datum: 20.07.13 02:03
avatar

To tlačítko provádí změny uvnitř datagridu, které mohou způsobit, že datagrid nebude validní? Mám za to, že když vemete kolekci .Rows a změny každého řádku budou prováděny přes .DataBoundItem (tedy v modelu, ne v zobrazení), tak se všechny odpovídající eventy normálně spustí, tedy se bude validovat všechno, co se validovat má.

Aspoň teda doufám, že to tak je.. bych to musel na něčem vyzkoušet.

Ohodnoceno: 0x
 
Od: ostin
Datum: 20.07.13 08:18

No slo mi jen o to, za mohu tu vytvorenou udalost spustit manualne prave tim stiskem tlacitka stejne tak jako kdyz spoustim libovolnou funkci kterou si vytvorim. Ono ta udalost je v podstate funkce, ale ma ty 2 parametry. Zajimave je to, ze kdyz mam toto tlacitko primo v zalozce kde se nachazi ten datagridView, tak se ta validace spusti automaticky ale dam tlacitko mimo zalozku, tak to validaci neprovede.

Asi to nebude tim ze pouzivam misto klasickeho buttonu tooStripButton?

Od: ostin
Datum: 20.07.13 11:14

Zkusim se zeptat jinak, potrebuji spustiti neco co se spusti kdyz zapisi hodnotu do bunky v DGW a zmacknu klavesu ENTER. Toto potrebuji spustit na kliknuti libovolneho tlacitka.

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.