Hallo allerseits,
bis heute habe ich keinen effektiven Lösungsansatz zu diesem Thema im Internet gefunden (korrigiert mich bitte wenn ich da falsch Liege!)
Deshalb habe ich mir mal Gedanken darüber gemacht wie man das KeyPress-Event möglichst schnell und effektiv Händeln kann.
Die Idee dahinter ist einen String zu verwenden, der eine eindeutige Identifizierung der Eingabe ermöglicht.
Im Grunde wurde dies nun durch einen 2 Zeiler realisiert.
Hierzu übergebe ich euch ein String-Builder-Tool, mit dem der benötigte String generiert und getestet werden kann.
Der Quellcode zum selber nachbauen versteckt sich im Spoiler weiter unten
Diese beiden Zeilen sind von Bedeutung, wenn ihr in eurem Code das KeyPress-Event Händeln wollt.
und nun viel Spaß beim Testen!
Quellcode
Spoiler anzeigen
bis heute habe ich keinen effektiven Lösungsansatz zu diesem Thema im Internet gefunden (korrigiert mich bitte wenn ich da falsch Liege!)
Deshalb habe ich mir mal Gedanken darüber gemacht wie man das KeyPress-Event möglichst schnell und effektiv Händeln kann.
Die Idee dahinter ist einen String zu verwenden, der eine eindeutige Identifizierung der Eingabe ermöglicht.
Im Grunde wurde dies nun durch einen 2 Zeiler realisiert.
Hierzu übergebe ich euch ein String-Builder-Tool, mit dem der benötigte String generiert und getestet werden kann.
Der Quellcode zum selber nachbauen versteckt sich im Spoiler weiter unten
Diese beiden Zeilen sind von Bedeutung, wenn ihr in eurem Code das KeyPress-Event Händeln wollt.
und nun viel Spaß beim Testen!
Quellcode
C#-Quellcode
- using System;
- using System.Windows.Forms;
- using System.Threading;
- // used controls:
- // Label lblInputExceptedChars "Enter excepted chars here."
- // TextBox tbInputExceptedChars
- // Button btnStringToClipboard "Copy string to Clipboard"
- // Label lblOutputExceptedChars "Your characters-string."
- // TextBox tbOutputExceptedChars
- // Label lblTestExceptedChars "Test excepted chars here."
- // TextBox tbTestExceptedChars
- // Button btnClearAll "Clear all"
- namespace KeyPressCancel {
- public partial class Form1 : Form {
- string exceptedChars = "";
- public Form1() {
- InitializeComponent();
- }
- private void tbTestExceptedChars_KeyPress(object sender, KeyPressEventArgs e) {
- if (!exceptedChars.Contains($"{e.KeyChar}")) e.Handled = true;
- }
- private void tbInputExceptedChars_KeyPress(object sender, KeyPressEventArgs e) {
- tbOutputExceptedChars.Text += $"{e.KeyChar}";
- exceptedChars = tbOutputExceptedChars.Text;
- }
- protected void btnStringToClipboard_Click(object sender, EventArgs e) {
- if (tbOutputExceptedChars.TextLength < 3) return;
- Thread cbThread = new Thread(clipboard_SetText => Clipboard.SetText(tbOutputExceptedChars.Text)) { IsBackground = false };
- cbThread.SetApartmentState(ApartmentState.STA);
- cbThread.Start();
- }
- private void btnClearAll_Click(object sender, EventArgs e) {
- exceptedChars = "";
- tbInputExceptedChars.Text = "";
- tbOutputExceptedChars.Text = "";
- tbTestExceptedChars.Text = "";
- }
- }
- }
Das Chaos beginnt mit komprimierter Ordnung (Steppenpferd 2019)
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Steppenpferd“ ()