2017-12-01 2 views
-3

Ich bin neugierig, eine Funktion zu meinem Programm hinzufügen, so wenn es die Zwischenablage Text auf eine bestimmte Länge und beginnt mit bestimmten Zeichen, wenn sie den Text aus der Zwischenablage einfügen fügt es etwas anders.C# Wie kann ich den Inhalt der Zwischenablage basierend auf dem aktuellen Inhalt der Zwischenablage ändern?

Beispiel:

Benutzer Kopien 'abcdefghijklmnopqrstuvwxyz'

--program fängt die bestimmte Stringlänge und Startzeichen erkennt und schaltet Text--

Benutzer Pasten 'zyxwvutsrqponmlkjihgfedcba'

Hilfe würde geschätzt werden :)

+0

Bitte zeigen schaffen, was Sie bisher erreicht haben? SO kann Code für Sie nicht schreiben – Sunil

+0

Willkommen bei Stack Overflow! Diese Frage zeigt keinen Forschungsaufwand, also siehe http://stackoverflow.com/help/how-to-ask – Slai

+0

Klingt wie schlechte UX für mich. Wäre es nicht besser, dass sie es zuerst in eine Ihrer Textfelder einfügen und dann auf eine Schaltfläche namens say ** Reverse ** klicken, die die tatsächliche Umkehrung ausführt? – MickyD

Antwort

1

Wenn Sie nur dir brauchen exionen:

So kopieren Sie sich entweder in die Zwischenablage kopieren:

Clipboard.SetText("abcdefghijklmnopqrstuvwxyz"); 

Verwenden Sie diesen Text aus der Zwischenablage zu bekommen:

string s = Clipboard.GetText(); 

Nach den Text bekommen können Sie Ihre Regeln gelten Überprüfen Sie Länge und Zeichen, führen Sie die Konvertierung durch und fügen Sie den konvertierten Text schließlich in Ihr Textfeld ein.

if (s.Length > 16 && s.StartsWith("abc") 
{ 
    // do your stuff here 
    string convertedText = ConvertText(s); 
    //finally 
    txtBoxToPasteTo.Text = convertedText; 
} 

eine Paste abzufangen, müssen Sie eine benutzerdefinierte Textbox

class InterceptedTextBox : System.Windows.Forms.TextBox 
{ 

    protected override void WndProc(ref Message m) 
    { 
    // WM_PASTE: 
    if (m.Msg == 0x302 && Clipboard.ContainsText()) { 
     this.Text = ConvertText(Clipboard.GetText()); 
     return; 
    } 
    base.WndProc(ref m); 
    } 
} 

References

Verwandte Themen