Forum: PC-Programmierung C# Steuerelement erstellen "Setting" überschreiben


von Draco (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mir ein Steuerelement gebastelt. Nun würde ich gerne eine 
Funtkion überschreiben, die ja bereits vergeben ist (Enabled).

Wie überschreibe ich denn solch bereits vergebenen Dinge (Mir fällt grad 
nicht ein wie es heißt :-D)

Normalerweise schreibe ich mir meine "Dinge" ja selbst, aber es wäre 
halt schön wenn es übergreifend wäre.

Im Bild oben habe ich einfach meine Vordergrundfarbe geändert, ich würde 
halt aber gerne einfach das direkt über das Steuerelement machen lassen.
1
        private int rotateCircle = 90;
2
        public int RotateCircle
3
        {
4
            get { return rotateCircle; }
5
            set { rotateCircle = value; Invalidate(); }
6
        }

von Phony (Gast)


Lesenswert?

Mit dem override bzw. new Schlüsselwort

von Prog R. (daniel_v)


Lesenswert?

circProgessBar3.Enabled = false/true
Enabled ist übrigens ein Property....

von Draco (Gast)


Lesenswert?

Prog R. schrieb:
> circProgessBar3.Enabled = false/true
> Enabled ist übrigens ein Property....

Das ist mir bewusst, auch ist mir bewusst wie ich dies umstelle zu 
Laufzeit, ich möchte aber das ich dieses, selbst geschriebenes 
Steuerelement, im Steuerelement selbst ändern kann wenn extern die 
Property (Danke dafür :-D ) enabled auf false gesetzt wird.

von Martin S. (sirnails)


Lesenswert?

Du musst, wie schon gesagt wurde, die Enabled-Eigenschaft überladen. 
Design-Zeit in der IDE ist bei Controls = Laufzeit. Daher kannst Du das 
Verhalten in der IDE auch zur Design-Zeit per Code anpassen.

Siehe hier:

http://stackoverflow.com/questions/298486/how-do-i-disable-visual-styles-for-just-one-control-and-not-its-children

Das Ziel ist ein anderes, das Vorgehen das gleiche.

von Plauz (Gast)


Lesenswert?

Draco schrieb:
> ich möchte aber das ich dieses, selbst geschriebenes
> Steuerelement, im Steuerelement selbst ändern kann wenn extern die
> Property (Danke dafür :-D ) enabled auf false gesetzt wird.

Die Eigenschaft kannst du nicht überladen (nicht diese; es gibt durchaus 
virtuelle).
Aber mit der OnEnabledChanged-Methode sollte es funktionieren:

1
protected override void OnEnabledChanged(EventArgs e)
2
{
3
  if(!Enabled)
4
  {
5
     // ...
6
  }
7
8
  base.OnEnabledChanged(e);
9
}

von Draco (Gast)


Angehängte Dateien:

Lesenswert?

Plauz schrieb:
> Draco schrieb:
>> ich möchte aber das ich dieses, selbst geschriebenes
>> Steuerelement, im Steuerelement selbst ändern kann wenn extern die
>> Property (Danke dafür :-D ) enabled auf false gesetzt wird.
>
> Die Eigenschaft kannst du nicht überladen (nicht diese; es gibt durchaus
> virtuelle).
> Aber mit der OnEnabledChanged-Methode sollte es funktionieren:
>

Ich danke dir, das hat geholfen! Wobei base.OnEnabledChanged bringt das 
Steuerelement in eine Endlosschleife, ohne dieses funktioniert es aber 
tadellos.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.