Is it possible to disable keyboard input to a control? For instance a ListView
? How do I do that? I've tried overriding the KeyUp
KeyDown
events but apparently that was not the way?
IsEnabled
is a good solution, however I only wish to disable keyboard interaction and leave mouse interaction intact.
That is the purpose of the
WebControl.Enabled = false;
to prevent it from responding to user input.edit: now that the question has changed, disabling the control is no longer a solution. However I think a control that responds to mouse clicks by not keyboard is buggy, not everyone prefers to use the mouse.
KeyDown generally works for me if you do the following in it:
A more complete example with a practical application (disabling input from non-numeric characters): http://cccontrols.codeplex.com/SourceControl/changeset/view/34146#611536
John makes a good point though. Any reason you would want to disable interaction with the
Control
but not setEnabled
=false
?Edit: I just noticed the WPF tag. Not so sure of my answer anymore since I'm a WPF hater ;-)
Handling the
KeyDown
event is too late, but you can handle the PreviewKeyDown event and that should give you the behavior you are looking for:KeyPressEventArgs.Handled
: Gets or sets a value indicating whether the KeyPress event was handled.Property Value
Boolean
true
if the event is handled; otherwise,false
.if you set
e.Handled = true
, keyboard event not dispatch anymore.Dear maciek, the only thig you need to do is using OnKeyDown event just do