C#-DomainUpDown - Sperren

Gast #2406204
Lesenswert?
• ▲
▼
Hallo,

ich habe ein kleines Problem mit WindowsForms(C#). Besser gesagt mit 
einer
DomainUpDown.
In dieser DomainUpDown steht:

Index  Text
  0    "Ja"
  1    "Nein"

Die Property ReadOnly=false.
Mit den Pfeiltasten kann man also zwischen Ja(0) und Nein(1) auswählen.
Leider habe ich herausgefunden das man die Auswahl auch durch die 
Tastatur
beeinflussen kann.

Wenn man auf den Text in der DomainUpDown klickt dann springt da der 
Curser
rein.

Steht die DUpDown auf "Ja" und ich drücke auf meiner Tastertur auf ein 
"N"
dann springt die Auswahl in der DUpDown auf "Nein".
Dies funktioniert auch umgekehrt wenn die Auswahl auf "Nein" steht und 
ein
"J" gedrückt wird.

Wie kann man dieses Verhalten unterbinden ich will eine Steuerung 
ausschließlich durch die Pfeiltasten zulassen.

Das Problem wäre wahrscheinlich auch behoben wenn der Curser bei einem 
Klick auf den Text nicht in die DUpDown springen würde
Gast #2406257
Lesenswert?
• ▲
▼
@bluppdidupp
Ich will zu einem gewissem Zeitpunkt den Zugriff auf das DUpDown 
komplett
sperren.
Das sperren macht ich in diesem Fall nicht über das Attribut Enabled 
weil mir
das Steuerelement dann so ausgegraut wird.(Es hat glaube ich noch andere 
Nachteile gegeben)


Nur gibt es da eben den Fehler das ich das die Auswahl immernoch über
Tastatur/Maus ändern kann.

Wenn es da irgendeine Möglichkeit gibt die Funktion zu unterbinden,lasst
es mich wissen
Gast #2406698
Lesenswert?
• ▲
▼
Der Vollständigkeit halber -> Problem gelöst

class FixedDomainUpDown:DomainUpDown
    {
        public bool EnableButton { get; set; }
        public override void DownButton()
        {
            if (ReadOnly&&EnableButton)
                return;
            base.DownButton();
        }

        public override void UpButton()
        {
            if (ReadOnly&&EnableButton)
                return;
            base.UpButton();
        }

        protected override void OnMouseWheel(MouseEventArgs e)
        {
            if (ReadOnly && EnableButton)
                return;
            base.OnMouseWheel(e);
        }
        protected override void OnTextBoxKeyPress(object source, 
KeyPressEventArgs e)
        {
            if (ReadOnly && EnableButton)
                return;
            base.OnTextBoxKeyPress(source, e);
        }
    }

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren