views:

43

answers:

2

Hi all

How can I forbid the Backspace-Key as easy as possible in a WPF-Application?

The KeyDown-Event don't catch at the DEL and the Backspace-Key.

Thank you!

A: 

Try overriding OnTextInput(...).

Then if(args.Text == "\b") should give you the backspace.

Noel Abrahams
That doesn't exists in .NET 4.0 for a WPF Application :-(
Xarem
@Xarem, but it does. See http://msdn.microsoft.com/en-us/library/system.windows.uielement.ontextinput.aspx. Are you not subclassing a Window class?
Noel Abrahams
+3  A: 

Hi Xarem

To handle Backspace or other pressed key in order to cancel it, try to use the "PreviewKeyDown" event handler.

In your Xaml, set the attribute PreviewKeyDown like this :

<TextBox PreviewKeyDown="textBox1_PreviewKeyDown" ...

and in your code, define the event handler like this :

private void textBox1_PreviewKeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.Back || e.Key == Key.Delete)
    {
        e.Handled = true;
    }
}

Hop that helps :)

GuidEmpty
Yes, thank you very much :-)!
Xarem