Wie setzen Sie den Fokus auf das Formular?
Ich versuche die bekommen die eingegebenen Werte vom Benutzer und speichern Sie es auf eine char-variable, aber das problem ist, dass nichts geschieht, und ich denke, das problem ist mit dem Formular den Fokus, dies ist der code, und wenn ich es laufen keine Fehler auf tritt, aber auch nichts passieren. Was habe ich falsch gemacht?
char keyPressed;
public FrmZigndSC()
{
InitializeComponent();
this.Focus();
}
private void FrmZigndSC_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
keyPressed = e.KeyChar;
LblResult.Text += Convert.ToString(keyPressed);
}
InformationsquelleAutor Zignd | 2012-09-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, mit diesem code Basiert auf
KeyPressEventHandler
Error An object reference is required for the non-static field, method, or property 'System.Windows.Forms.Control.KeyPress'
Zignd ich ersetzt mit diesem.Tastendruck statt FrmZigndSC.KeyPress, ich ignorierte Ihre design-Bildschirm, aber mein code korrekt ist , wird er auf Tastendruck.
Oh ja. Jetzt funktioniert es, danke @Aghilas
Ich bin glücklich, Ihnen zu helfen @Zignd
Das ist gemacht @Zignd, ich genehmigt
InformationsquelleAutor Aghilas Yakoub
Wenn Sie möchten, zu erhalten, die eine Schlüssel-Benachrichtigung von der Anwendung ' E mesage-pipeline, die Weiterleitung auf die Konzentration des Elements, in diesem Fall, die Architektur empfindlich. Sie können nicht garantieren, dass von anderen Formen in Ihrer app, man würde fokussiert werden, oder die form ist nicht abgedeckt durch eine gewisse Kontrolle, dass absorbes, die Veranstaltung. Sie können nicht forse, um eine form mit einem Mittelpunkt, denn er ist ganz schlechtes UX-design (nicht sehr sicher, auch wenn dies möglich ist, zu implementieren, zu 100% arbeiten).
Was Sie kann es tun, sondern erklären-Klasse abgeleitet IMessageFilter:
und nach registrieren innerhalb Ihrer Anwendung:
InformationsquelleAutor Tigran
Habe ich versucht zu reproduzieren, in eine leere kleine Windows-Forms-Projekt. Dieser code funktioniert nur ohne die
Shown
event-handler:Könnten Sie versuchen, zu verwenden
this.Activate()
sowieso und sehen, ob es hilft. Wenn Sie andere Eingabesteuerelemente wie Textfelder auf Ihre form, versuchen Sie, die form istKeyPreview
- Eigenschaft auf true.InformationsquelleAutor Matthias Meid
Mit dem FocusManager statt.Focus() sollte den trick tun!
http://msdn.microsoft.com/en-us/library/system.windows.input.focusmanager.aspx
InformationsquelleAutor MrEdge
Ich Denke, das problem ist, dass, wenn Sie verschiedenen Steuerelemente auf Ihrem Formular fangen ketpressed. Ich hatte das gleiche probmel mit einem DateTimePicker auf meine Kontrolle.
Versuchen Sie zu löschen Sie alle von Ihnen, und dann versuchen Sie es, es wird funktionieren. Und von diesem Punkt, fügen Sie die Steuerelemente wieder zu sehen, das ist das problem.
InformationsquelleAutor Jordy van Eijk
Den code, den Sie gegeben haben, ist in Ordnung für mich. Legen Sie die Start-Seite als FrmZigndSC und versuchen Sie es erneut.
InformationsquelleAutor Anish V