• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C# - zamknięcie programu klawiszem

+1 głos
70 wizyt
pytanie zadane 12 stycznia w C# przez Czang Kai Shrek Obywatel (1,760 p.)


        public Main()
        {
            InitializeComponent();
             ???
            
        }
        private void endToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.Application.Exit();
            
        }
        private void Main_Load(object sender, EventArgs e)
        {
            ???
        }

Witam, pracuję w C# .NET. Ustawiłem zamknięcie poprzez Click na odpowiednim formularzu, ale czy jest możliwość by zrobić to poprzez naciśnięcie klawisza? np: Esc czy spacja etc.
Widzę w przeglądarce kilka pomysłów
https://stackoverflow.com/questions/3526752/how-to-make-a-form-close-when-pressing-the-escape-key/3526775
https://www.codeproject.com/Questions/692622/ESC-key-to-close-application
ale jak na złość nie potrafię tego zaaplikować... Do czego powinna odnieść się metoda? Do klawisza?

1 odpowiedź

+1 głos
odpowiedź 12 stycznia przez VBService Mędrzec (162,810 p.)
wybrane 12 stycznia przez Czang Kai Shrek
 
Najlepsza

Masz w pierwszym linku podanym przez Ciebie - Form_KeyDown

https://stackoverflow.com/questions/3526752/how-to-make-a-form-close-when-pressing-the-escape-key/3526775

private void Form_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Escape)
    {
        this.Close();
    }
}

 

P.S.

using System;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape)
            {
                this.Close();
            }
        }
    }
}

 

komentarz 12 stycznia przez Czang Kai Shrek Obywatel (1,760 p.)

Też wpadłem na to by to przekopiować, ale kompilator słusznie pokazuje, że Main_KeyDown (czy tam Form1_KeyDown, jak kto woli) nie ma żadnych odwołań. Kompiluje się, ale nie wykonuje.
 

1
komentarz 12 stycznia przez VBService Mędrzec (162,810 p.)
edycja 12 stycznia przez VBService

Sprawdź czy masz zapis w Form1.Designer.cs

 

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

 

 

dla kodu

 

normalnie ten kod jest dodawany "automatycznie" w czasie tworzenia aplikacji, ale można go "ręcznie" edytować.

1
komentarz 12 stycznia przez Czang Kai Shrek Obywatel (1,760 p.)

Tak, to jest to! Choć Ja wkleiłem tą linię kodu (patrząc w Twoim kodzie) w pliku Form1.cs
w public Form1()
 

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

  

Podobne pytania

0 głosów
0 odpowiedzi 139 wizyt
pytanie zadane 11 marca 2020 w C# przez czujek22 Dyskutant (7,670 p.)
0 głosów
0 odpowiedzi 133 wizyt
0 głosów
4 odpowiedzi 1,561 wizyt
pytanie zadane 8 kwietnia 2016 w C# przez Placidus Użytkownik (580 p.)

87,902 zapytań

136,488 odpowiedzi

304,300 komentarzy

58,284 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...