Erkennen Sie Strg+v auf-Taste drücken
Ich bin mit Textfeld keypress
Ereignis behandeln nur ausgewählte Eingänge. Grundsätzlich ist die textbox
Benutzer zur Eingabe von Werten, wo es ermittelt werden kann.
d.h. Sie können die Art (5*5)- (10/5)
.
Die aktuelle Methode überprüfen, wie Convert.ToChar("*")==e.KeyChar
etc...
Im moment ist es nicht erlaubt, die Benutzer zu kopieren, Werte einfügen.
Gibt es trotzdem, kann erkennen, dass die ctrl+v
auf keypress
Veranstaltung?
Update
Was ich Tue, im moment
static IEnumerable<char> ValidFiancialCharacters
{
get
{
if(_validFiancialCharacters==null)
{
_validFiancialCharacters = new List<char>();
_validFiancialCharacters.Add(Convert.ToChar("0"));
_validFiancialCharacters.Add(Convert.ToChar("1"));
_validFiancialCharacters.Add(Convert.ToChar("2"));
//till 9 and
_validFiancialCharacters.Add(Convert.ToChar("+"));
_validFiancialCharacters.Add(Convert.ToChar("-"));
_validFiancialCharacters.Add(Convert.ToChar("/"));
//and some other
}
return _validFiancialCharacters;
}
}
public static bool ValidateInput(KeyPressEventArgs e)
{
if (ValidFiancialCharacters.Any(chr => chr == e.KeyChar))
{
e.Handled = false;
}
else
{
e.Handled = true;
}
return e.Handled;
}
Und in der keypress -
private void txtRate_KeyPress(object sender, KeyPressEventArgs e)
{
NumberExtension.ValidateInput(e);
}
Warum arbeiten Sie auf der Ebene der Tasten überhaupt? Können Sie nicht einfach zu bewerten
Ich bin einschränken der Benutzer zur Eingabe einiger Werte. Erlauben nur bestimmte Werte
textbox.Text
auf ändern, und die Verantwortung für Schlüssel und kopieren-einfügen, die mit der standard-textbox behandelt alle?Ich bin einschränken der Benutzer zur Eingabe einiger Werte. Erlauben nur bestimmte Werte
InformationsquelleAutor | 2014-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie brauchen, um zu behandeln, kann durchgeführt werden, indem die ähnlichen Ansatz
Haben Sie einen Blick auf Key-Codes. Sie können erkennen, was immer die Taste gedrückt wurde,
so..
Erstellen Sie eine Liste mit allen Eingaben, die Sie brauchen
und verwenden Sie die
KeyDown
Veranstaltung und die Verwendung KeyEventArgs.SuppressKeyPress EigenschaftMüssen Sie möglicherweise bestätigen Sie die Kopie eingefügten Wert in
leave event
, da Benutzer können fügen Sie nichts!!!Es gibt ein problem mit
KeyDown
undSuppressKeyPress
Sie, wenn Sie wollen, dass nur einige bestimmte Tasten, es wird unterdrückt, alle anderen Tasten auf die Ebene. z.B. Alt+F4InformationsquelleAutor huMpty duMpty
Schauen Sie sich nur die Modifikatoren propertie in Sie
KeyDown
oderKeyUp
Ereignis fürKeys.Control
Probe
KeyDown
oder KeyUp
Update
Damit nur bestimmte Eingänge, die Sie verwenden können, die
KeyPress
Veranstaltung.Mehr Informationen
keyup
?Hast du es ausprobiert ?
Ich habe sowohl die Ereignisse im moment. So, falls es pass von
KeyDown
es fehlschlägt, von keypressKeyPress funktioniert nicht für die STRG-Taste, verwenden Sie KeyDown oder KeyUp.
Ja, ich weiß, aber das problem was ich habe ist, dass nur bestimmte andere Zeichen zusammen mit
ctrl+v
. d.h. alle zahlen und einige andere Eingabe wie+,-,*
etc...InformationsquelleAutor dknaack
KeyPress
Ereignis nicht fangen Sie "Strg + V" aus irgendeinem Grund. VerwendenKeyDown
Veranstaltung:oder
Nein, das können Sie nicht. Sie müssen die Erben Ihre textbox überschreiben
WndProc
und GriffWm_Paste
Nachricht. Ansonsten können SieTextChanged
Ereignis, um zu sehen, was Benutzer eingefügt/Nein, ich handle den eingefügten Wert getrennt. Aber zu erlauben, geben Sie Werte ein, wie ich bereits erwähnt
Das ist, was ich sagte, Sie brauchen, um zu behandeln
Wm_Paste
und überprüfen Sie, welche Benutzer einfügen, können Sie entscheiden, ob Sie dies zulassen möchten oder nicht.InformationsquelleAutor Sriram Sakthivel
Sollten Sie verwenden, KeyDown oder KeyUp, weil das KeyPress-Ereignis wird nicht ausgelöst, indem Sie die STRG-Taste, sondern nur durch "Zeichen" - Tasten. Wenn Sie das KeyDown-Ereignis können Sie erkennen
ctrl+v
durch die Prüfung:InformationsquelleAutor Brutus
Strg+V-Sequenz sein kann, aufgefangen von KeyPressEvent.
Das kann man einfach nicht überprüfen Sie es, indem Sie die folgenden Schritte aus :
Müssen Sie:
weil das keybord erzeugt die ASCII=22 (synchronous idle).
Das folgende Beispiel aktiviert die TextBox zu übernehmen +- Beträge mit Komma-Trennzeichen und ermöglicht das einfügen durch Strg+V
InformationsquelleAutor Sylwester Santorowski