如何防止用户键入箭头键以外的所有字符?

时间:2011-01-11 10:41:10

标签: c# windows-mobile

我的WinForm profram中有TextBox

如何防止用户键入除箭头键,Esc和Enter之外的所有字符?

很抱歉,我忘了写这是针对Windows-mobile和Windows-mobile没有

e.SuppressKeyPress = true;

谢谢,抱歉不理解

3 个答案:

答案 0 :(得分:1)

KeyDown事件将为您完成此任务。

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        switch (e.KeyCode)
        {
            // These keys will be allowed
            case Keys.Left:
            case Keys.Right:
            case Keys.Up:
            case Keys.Down:
            case Keys.Escape:
            case Keys.Enter:
                break;

            // These keys will not be allowed
            default:
                e.SuppressKeyPress = true;
                break;
        }
    }

答案 1 :(得分:0)

您可以处理事件TextBox.KeyDown

您不希望传递给TextBox的过滤键 - 检查KeyEventArgs.KeyCode是否是您的代码)

然后将KeyEventArgs.Handled和KeyEventArgs.SuppressKeyPress设置为true。

答案 2 :(得分:0)

正如BoltClock所写,这些字符不可打印,因此您无法“键入”它们。如果您打算忽略这些字符并对其他字符执行其他操作,则可以在文本框的KeyDown事件中执行此操作。

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (
            e.KeyCode == Keys.Left || 
            e.KeyCode == Keys.Right ||
            e.KeyCode == Keys.Down ||
            e.KeyCode == Keys.Up ||
            e.KeyCode == Keys.Enter || 
            e.KeyCode == Keys.Escape
            )
        {
            e.SuppressKeyPress = true;
            return;
        }
        //do sth...
    }