C# Hex Masque pour maskedtextbox d'entrée

Je suis en train de définir un hex de masque pour une zone de texte. De sorte que seulement valide les nombres hexadécimaux peuvent être saisis. (Et", " et "ENTRÉE")

Il fonctionne presque. Jusqu'à présent, il permettra seulement de petites lettres de a à f et les chiffres de 0 à 9, mais je peux toujours saisir des lettres majuscules GHIJKLM. (Au début, lorsque le programme est lancé, il semble accepter un char ex k, mais après il a exclu k une fois qu'il ne sera pas affiché après que, jusqu'à la prochaine fois que vous démarrez le programme. C'est bizarre.)

Ici est une partie de code:

private void EnterKey(Object sender, System.Windows.Forms.KeyPressEventArgs e)
{
    //if keychar == 13 is the same as check for if <ENTER> was pressed
    if (e.KeyChar == (char)13)
    {
        //is <ENTER> pressed, send button_click
        button1_Click(sender, e);
    }
    {
        //this will only allow valid hex values [0-9][a-f][A-F] to be entered. See ASCII table
        char c = e.KeyChar;
        if (c != '\b' && !((c <= 0x66 && c >= 61) || (c <= 0x46 && c >= 0x41) || (c >= 0x30 && c <= 0x39) || (c == 0x2c)))
        {
            e.Handled = true;
        }
    }
}

C'est la façon dont je la lie de l'événement:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyDown);
}

Quelqu'un pourrait-il de vous les gars sage, voir ce que je fais mal?

C'est mon premier petit programme, alors allez facile sur moi :o)

  • La partie sur la première touche, ce qui n'a pas beaucoup de sens. Comment voulez-vous lier l'événement? Avez-vous essayez d'utiliser la KeyDown événement?
  • Je l'ai fait à partir de la zone de saisie: private void textBox1_TextChanged(object sender, EventArgs e) { this.textBox1.KeyPress += new System.De Windows.Les formulaires.KeyPressEventHandler(textBox1_KeyDown); }
InformationsquelleAutor user302935 | 2010-07-26