Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
in C# keine Ahnung, in C++ fängst Du den Tastaturevent ab und simulierst dann einen Mausklick in dem Du dem Button eine WM_COMMAND Nachricht mit Notifier BN_CLICKED Nachricht sendest.
Ich habs so hingekriegt. Ich benutze das KeyUp Event bei einem Button. Dort schreibe ich meinen Code, welcher bei einem Click passieren soll. Nun überprüfe ich welche Taste gedrückt wird über die KeyUp Methode. Mein COde sieht so aus:
Code:
Keys key = new Keys();
key = e.KeyData;
//MessageBox.Show(Convert.ToString(key));
if(key == Keys.NumPad1)
{
btnNr1_Click(this, new EventArgs());
}
so wie Du es formulierst wird das aber nur funktionieren wenn der Button den Focus hat.
Sobald der Anwender auf einen anderen Button oder ein anderes Control klickt (z.B. eine Listbox) wird der Tastendruck nicht erkannt.
Die Windows Events sind doch auch mit C# die gleichen?
D.h. damit der Tastendruck immer erkannt wird musst Du in den Parent des Buttons gehen und dort den Key abfangen, bevor er an seine Childs weitergeleitet wird.
Und der Ansatz die Methode btnNr1_Click direkt aufzurufen ist nicht besonders schön.
Eleganter ist es die Nachricht zu versenden und damit den Aufruf der Methode auszulösen.
Du kannst aber auch eine Methode schreiben, die du in btnNr1_Clicked und in deiner KeyUp Bedingung aufrufst.
PostMessage ist härteste Win32 API und davon will man ja mit C# ein wenig weg.
ich denke das gleiche wie [UPS]Erazor. denn die harten api calls wie in c und c++ sollen ja in .NET nicht mehr all zu oft vorkommen... das mit einem eigenen key up erreignis probiere ich mal