Welcome to another instalment of “how much can I confused myself today…”
Here, I will you how to recognise a keydown event on a textbox and also how to “identify” which key was pressed. This was useful to me because I wanted a button to be pressed when the user pressed the enter key whilst typing in a textbox. Similar to when you type a question into Google and press enter instead of pressing the search button.
First, I found what control I want the event to handle and added a raiseevent onto the button I wanted pressing. You can see this below:
$syncHash.Textbox.Add_KeyDown({ if ($args[1].key -eq 'Enter'){ $syncHash.Button.RaiseEvent((New-Object -TypeName System.Windows.RoutedEventArgs -ArgumentList $([System.Windows.Controls.Button]::ClickEvent))) } })
So in this scenario, when the user wants to search they can just press enter in the textbox and the button will be pressed. You can also do this for the entire form. Meaning that if you have multiple textboxes and want an enter in any of them to press a button, you can just put the handler onto the entire form. You can see this below:
$syncHash.Window.Add_KeyDown({ if ($args[1].key -eq 'Enter'){ $syncHash.Button.RaiseEvent((New-Object -TypeName System.Windows.RoutedEventArgs -ArgumentList $([System.Windows.Controls.Button]::ClickEvent))) } })
Enjoy!
Forest Zoellner 31 May 2019
Nice post. SB Com I learn something more difficult on completely different blogs everyday. It would at all times be stimulating to learn content material from other writers and apply a little one thing from their store. I’d want to make use of some with the content material on my blog whether you don’t mind. Natually I’ll provide you with a hyperlink on your internet blog. Thanks for sharing.
admin 05 June 2019
Hi Forest,
feel free to use anything you want 🙂 That’s what my blog is for, take whatever you need. Credit is just a nice bonus
Kind regards!