Ich versuche, die Menge eines bestimmten Zeichens (in meinem Fall ein Komma (,)) in meinem Textfeld zu begrenzen. Ich möchte, dass es maximal 9 Kommas in der Textbox erlaubt. Wenn der Benutzer versucht, mehr Kommas als 9 hinzuzufügen, sollte eine Meldung mit dem Fehler angezeigt werden und dem Benutzer dann nicht mehr in das Textfeld eingeben.C# - bestimmte Zeichen in Textfeld beschränken
In meiner Anwendung erlaube ich dem Benutzer, 10 Tags zu einem Textfeld durch Kommas getrennt hinzuzufügen.
Ein Beispiel Eingabe durch den Benutzer könnte wie folgt aussehen: summer,sexy,hot,beautiful,girls,guys,food,music,funny,lol
, dass die maximale Grenze von Tags in der Textbox (9 Kommata) erlaubt ist. Und wenn sie diese Grenze erreichen, sollte es sie davon abhalten, weitere Kommas zu tippen. Ich hoffe, ich war klar genug.
Hier ist mein Code so weit. Mein Textfeld heißt tagBox.
private void tagBox_TextChanged(object sender, EventArgs e)
{
// Allow max 10 tags in the tag box
string tags = tagBox.Text;
int count = tags.Split(',').Length - 1;
if (count > 9)
{
MessageBox.Show("Max 10 tags are allowed.", "Notice", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
Ich schaffte es nur die Meldungsbox erscheinen zu lassen. Aber wie verhindere ich, dass sie mehr Kommas eintippen?
Verwendung KeyPress Ereignis oder KeyUp-Ereignis statt Textchanged-Ereignis tun sollten. Wenn dann im KeyPress/KeyUp-Ereignis das aktuelle Komma bereits 9 ist und das aktuelle Zeichen, das gedrückt wird, ein Komma ist, können Sie das Ereignis abbrechen, wenn das Kommazeichen verboten ist. –
Wenn Sie ein benutzerdefiniertes Steuerelement erstellen, das von 'Textbox 'erbt, können Sie den keypressed Handler außer Kraft setzen und ignorieren, wenn Ihr Limit überschritten ist. – MDK
Okay, ich werde es stattdessen in KeyPress ändern. Aber wie storniere/ignoriere ich die Schlüssel? (Ich möchte immer noch, dass der Benutzer DELETE drücken kann, um die aktuellen 10 Tags zu entfernen/zu bearbeiten). Ich will einfach nicht zulassen, dass sie nach einem 9. Komma mehr hinzufügen. –