Jeg sidder og prøver at smide noget kode sammen der kan reagere på nogle tastetryk på keyboardet. Det virker altsammen fint så længe jeg kun har en tom form, men lige så snart jeg sætter en knap ind på formen reagere den ikke længere.... Hvorfor!!! ?
Her er et en forsimplet udgave afmin Form1 kode:
public partial class Form1 : Form { public Form1() { InitializeComponent(); this.KeyDown += new KeyEventHandler(Form1_KeyDown);
Uden den, er det kun button1_KeyDown() som bliver kaldt. Med den, og med e.Handled = false, bliver både Form1_KeyDown() og derefter button1_KeyDown() kaldt.
Det lader i øvrigt ikke til at der er nogen metode til at forhindre at knappen får fokus når den indsættes. Jeg kan i hvert fald ikke finde den.
andersbodilsen> I min kode har jeg en Form og på den er der en enkel Button.
Jeg har tilføjet eventhandlere på KeyDown for både formen og for knappen. Da det er gjort via Visual Studio ligger koden for dette i InitializeComponent(). Jeg ved ikke lige hvorfor at du tilføjer en KeyDown i din Form1-constructor? Måske har du faktisk denne linje hele to gange, en i InitializeComponent() og en i Form1().
Derudover har jeg tilføjet en linje kode sådan at jeg kan se når de to KeyDown-eventhandlere bliver aktiveret. Hvis jeg har formen fremme og trykker på en vilkårlig tast får jeg to MessageBox'e op: først den for Form1_KeyDown(), og når jeg trykker på Ok-knappen, den for button1_KeyDown().
Uden KeyPreview-linjen, får jeg kun den for button1_KeyDown().
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.