I'm trying to get the key pressed on the keyboard (not a specific), i watched somes "solutions" everywhere and i found nothing working. Conditions: Need anchoring a panel on the form.
This worked on a Console, i want the same without cancelling it! https://docs.microsoft.com/en-us/dotnet/api/System.Console.CancelKeyPress?view=net-6.0
private void Form1_KeyPress(object sender, KeyPressEventArgs e) { KeysConverter convertor = new KeysConverter(); string keyPressed = convertor.ConvertToString(e.KeyChar); if (keyPressed == "t") { Console.WriteLine("THIS IS T"); } }
CodePudding user response:
try this in your Form1.cs
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.T)
{
MessageBox.Show("THIS IS T");
}
return base.ProcessCmdKey(ref msg, keyData);
}
CodePudding user response:
enter code here
as I understood, you put the focus on a button B and defined that if the A key is pressed, the code related to the A button will be executed.
protected override bool ProcessCmdKey(ref Message message, Keys KeyData)
use
code
protected override bool ProcessCmdKey(ref Message message, Keys KeyData)
{
switch (KeyData)
{
case Keys. E:
MessageBox.Show("Hello");
break;
}
return true;
}