Laden...

Objekt unsichtbar mach auf Tastendruck

Erstellt von Crone vor 13 Jahren Letzter Beitrag vor 13 Jahren 921 Views
C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 13 Jahren
Objekt unsichtbar mach auf Tastendruck

Hallo,

Ich habe mich jetzt schon durch zig Toturials geschlagen und habe doch schon einiges hinbekommen, jedoch komme ich nun einfach nicht weiter und hoffe das ihr mir helfen könnt.

Folgendes Problem:

Ich will das auf ein Tastendruck z.b. wenn ich ESC drücke, dass dann mein panel unsichtbar bzw. sichtbar wird.
Ich habe auch schon einiges ausprobiert, folgender quelltext liefert mir kein fehler, jedoch passiert auf Tastendruck nichts.


private void panel_KeyDown(object sender, KeyEventArgs e)
        {

            if (e.KeyCode == Keys.E)
            {
                panel1.Visible = true;
                e.Handled = true;
            }
        }

Kann mir einer sagen wo, da der fehler liegt?

MFG Marcel

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo Crone,

willkommen bei myCSharp.de

Soweit schaut dein Code mal nicht schlecht aus.

Kann mir einer sagen wo, da der fehler liegt?

Was genau funktioniert denn nicht? Wird die Methode überhaupt aufgerufen?
Hast du das KeyDown Event überhaupt registriert?
Siehe: [Hinweis] Wie poste ich richtig? Punkt 5

Guck mal hier Bewegen von Objekten durch Tasten-Drücken
Dort wurde mehr oder weniger das selbe gemacht wie du jetzt willst.

Gruss
Michael

C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 13 Jahren

Ah super danke dir.

endlich funktioniert es;)

P.S:aso zu der regel die du gepostet hast das problem war das einfach nix passiert ist kein fehler usw.

mfg Marcel

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

3.430 Beiträge seit 2007
vor 13 Jahren

Hallo Crone,

schön, dass du das Problem jetzt lösen konntest.
Es wäre aber nett von dir wenn du noch kurz beschreiben könntest woran es gelegen ist und wie das Problem behoben werden konnte => ein paar kleine Sätze reichen da schon 😃

Somit können in der Zukunft alle Leute die auf diesen Thread treffen von deiner Lösung profitieren.

Vielen Dank!

Gruss
Michael

C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 13 Jahren

Ja natürlich kein problem war nur schon wieder so sehr vertieft 😉

Also das war schließlich die lösung:
Es fehlte also überall das "On" bei OnKeyDown obwohl es auch ohne gehen müsste und folgende zeile fehlte bei mir:

 this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.panel1_OnKeyDown);

Hier der mein funktionierende Quelltext.


        public Form1()
        {
            InitializeComponent();
            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.panel1_OnKeyDown);

            KeyPreview = true; // steht zwar nicht in dem anderem Thread drin aber ohne gehts nicht ;)

        private void panel1_OnKeyDown(object sender, KeyEventArgs e)
        {
            
            switch (e.KeyCode)
            {
                case Keys.Escape:
                    panel1.Visible = true;
                    e.Handled = true;
                    break;

            }
        }

MFG Crone

Real programmers don't comment their code - it was hard to write, it should be hard to understand.