ButtonBase   zodpovězená otázka

VB.NET

Dobrý den,

ve fóru píšete možnost využití třídy buttonbase.

http://vbnet.cz/forum-tema--459-komponen...

Vlastní tlačítko jsem si vždy psal jako třídu děděnou od control.

Kde přepisuji vlastnost onpaint a další.

Vy používáte třídu buttonBase, ale já nevím jak ji správně použít.

V msdn je:

Public MustInherit Class ButtonBase

Inherits Control

Ale mě třída zdědit nejde, protože nemá přístupný konstruktor a nelze dědit.

Vý někdo jak používat tuto třídu ?

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

"protože nemá přístupný konstruktor a nelze dědit" - zajímalo by mě, co si představujete pod pojmem "dědit", dědění má s konstruktorem pramálo společného. Kromě toho abstraktní třída ButtonBase je určená pouze k dědění (MustInherit), takže tvrzení "nelze dědit" je poněkud zcestné...

'Třída zděděná od ButtonBase bez konstruktoru.
Class CustomButton
  Inherits ButtonBase
End Class

'Třída zděděná od ButtonBase s vlastním konstruktorem.
Class CustomButton2
  Inherits ButtonBase
  Public Sub New(ByVal parameter As Object)

  End Sub
End Class

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

A chyba se vloudila.

Omlouvám se v .NET Frameworku to dědit jde, já používám CF 2.0 tam vypisuje chybu:

Class 'System.Windows.Form.ButtonBase' has no accessible 'Sub New' and cannot be inherited.

V dokumentaci k CF je podpora:

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

Přes tohle se mi nedaří dostat.

v plném frameworku to běhá vpohodě.

"Ještě informace mělo by to běhat na Windows CE 5.0, ale žádné omezení jsem nikde nenašel."

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

Můžete sem hodit ten problematický kus kódu?

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

No on je problém už při inherits

V normálním frameworku:

Public Class ctrlButton : Inherits ButtonBase
    Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(pevent)
    End Sub
End Class

vše funguje jak má.

V CF:

Public Class ctrlButton : Inherits ButtonBase
    Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
        MyBase.OnPaint(e)
    End Sub
End Class

Se modře podtrhne ButtonBase a při kompilaci chyba o nemožnosti dědit viz. výše.

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

http://www.vbnet.cz/forum-tema--2503-ded...

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