Wie mach ich einen Tastaur input?

Briefkasten

Erfahrenes Mitglied
Hallo,

ich will ein Programm schreiben, dass wenn der user z.B. „a“ eingibt eine Linie gezeichnet wird. Soll ein kleines Spiel werden.

Das mit dem Zeichnen kann ich. Nur wie kann ich feststellen was gerade der Anwender gedrückt hat?

Ich habe auf der Msdn Seite schon nach Input gesucht leider habe ich nichts Passendes gefunden.

Kann mir Jemand helfen?

Danke im vor raus.

mfg Martin
 
Irgendwie finde ich nur bzgl. Textbox Themen und Code Bsp. dazu. Find aber nicht wirklich das was ich will.

Ich will, dass wenn das Programm aktiv ist, z.B. „a“ gedrückt wird, dann etwas Bestimmtes passiert, ohne das man dazu extra eine Textbox machen muss.

Kann mir jemand weiterhelfen?
 
naja ist eine Textbox so schlimm?
Du kannst es duch zum Beispiel auf eine TextBox legen die Irgendwo außerhalb des Sichtbaren liegt!
 
Jede Form hat doch die gleichen Events. Da braucht man doch gar keine txtBoxes für. Weder sichtbar, noch unsichtbar.
Code:
private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
		{
			if (e.KeyChar == 'a')
				MessageBox.Show("Ich stehe für die Aktion, die eigentlich hier sein sollte");
		}
 
@ MyersGer genau sowas habe ich gesucht.

Leider funktioniert das aber bei mir nicht.

PHP:
...			// 
			// Form1
			// 
			this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
			this.ClientSize = new System.Drawing.Size(292, 271);
			this.Name = "Form1";
			this.Text = "Form1";
			this.Load += new System.EventHandler(this.Form1_Load); // Hier kommt eine Fehlermeldung *1

		}
		#endregion

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main() 
		{
			Application.Run(new Form1());
		}
		
		private void Form1_Load(object sender, System.Windows.Forms.KeyEventHandler e)
		{
			MessageBox.Show("Ich stehe für die Aktion, die eigentlich hier sein sollte");
		}

*^1C:\Dokumente und Einstellungen\xxx\Eigene Dateien\Visual Studio Projects\Input\Form1.cs(61): Method 'Input.Form1.Form1_Load(object, System.Windows.Forms.KeyEventHandler)' does not match delegate 'void System.EventHandler(object, System.EventArgs)'

Was habe ich falsch gemacht?

mfg martin
 
Hallo.

Du hast dir da einen EventHandler für das Load Event der Form zugewiesen.

Code:
this.Load += new System.EventHandler(this.Form1_Load);

Es ist ein normaler EventHandler!
Deine Form1_Load Methode hat folgende Parameter.

Code:
(object sender, System.Windows.Forms.KeyEventHandler e)

Da passt was nicht!

Code:
(object sender, EventArgs e)
So würde es schon besser aussehen.
 
Jep. Du solltest die Tastatureingabe in einem Handler für das KeyDown Event behandeln.

Ich hab mal eben n kleines Programm gemacht, das das Bewegen eines Bildes ermöglicht. (Mit den Tasten a,s,d,w).

Gucks dir an, vielleicht hilfts.
 

Anhänge

  • keyinp.rar
    22 KB · Aufrufe: 35

Neue Beiträge

Zurück