Dědění , tvorba vlastnéí komponenty   zodpovězená otázka

C#, Komponenty, Architektura

Dobrý den,

Pokouším se vytvořit komponentu Tool a tak jsem jí přidal vlastnost Button(poppřidání komponenty do projektu se ve vlastnostech vybere již existujcí button) a proměnou typu bool isActive, abych zjistil jestli je komponenta zrovna aktivní. IsActive se změní na true právě, když kliknu na tlačítko Button a na false by se měla změnit když kliknu na jakou koli jinou komponentu Tool. A v tom je právě ten problém, potřeboval bych, aby se komponenta Tool chovala jako RadioButton.

Tak tedy ta otázky z dědičnosti , nedala by se nějak zdědit funkcionalita radiobuttonu do mé komponenty, aby byl aktivní právě jen jeden Tool. Problém je v tom, že i kdyby to šlo zdědit tak nevím moc jak na to , ačkoli jsem četl články na dědičnost, tak do teď moc nevím jak jí používat v praxi.

Takhle zdědím třídu a ještě implementuji IComponent, protože vytvářím komponentu, ale jak dál využít tu dědičnost nevim.

class Tool : System.Windows.Forms.RadioButton, IComponent

když to napíšu pouze takto tak se mi z celé komponenty stane radio buton a to nechci jako klikací oblast chci mít to tlačítko a aby šel aktivovat jen jeden tool.

Takže bych jen potřeboval nějak nakopnout, jestli by to vůbec šlo zdědit a popř. jak použít tu správnou věc, aby se to chovalo jako radio button(ale aby tam žádný ošklivý radiobutton nebyl)?

Za každé biť jemné naťuknutí předem děkuji.

A ještě odkaz na obrázek pro lepší pochopení :http://grr.over.cz/Tool.png

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A nešlo by vlastnost IsActive nastavovat podle toho zda daný button má/nemá focus?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To by možná šlo, ale nemůžu na tlačítku najít nějakou událost když se změní focus.

Ale i tak děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

GotFocus, LostFocus. Děděním se obvykle řeší pouze přístup ke komponentě, nikoliv její funkčnost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Aha, v dialogu properties se to jemnuje leave a enter a v kódu gotfocus a lostfocus proto jsem to nenašl.

děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Krása konečně jsem se dostal k tomu abych to skusil napsat a vše pěkně funguje. objěma moc děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback