Eigenes STRG+V mit Richtext-Box ?



  • Ich wollte nicht das Standard "STRG+V"-Einfügen der Richtext-Box benutzen, sondern vorher das Zeug in der Zwischenablage selber noch etwas formatieren bevor es die Richtextbox anzeigen soll.

    Momentan versuche ich die Infos dazu via KeyDown-Event zu ergattern.
    Aktueller Versuch sieht so aus:

    private void myRichtext_KeyDown(object sender, KeyEventArgs e)
    		{
    			if (e.Control)
    			{
    				System.Diagnostics.Debug.WriteLine("STRG!!");
    			}
    			if (e.KeyCode == Keys.V)
    			{
    				System.Diagnostics.Debug.WriteLine("VVVV!!");
    			}
    			System.Diagnostics.Debug.WriteLine("key was pressed!!!");
    		}
    

    Wenn ich nur STRG drücke passiert rein gar nichts.
    Wenn ich nur V drücke erscheint "VVVV!!" und "key was pressed!!!"
    Wenn ich STRG+V drücke erscheint: "STRG!!" und "key was pressed!!!"

    Rumprobiert habe ich auch schon mit e.Modifiers, etc...
    Könnte in e.KeyCode evt. mehr als nur Keys.V drin stehen ? Wenn ja, wie filtere ich dann da Keys.ControlKey und Keys.V raus ?

    Das Richtext-Teil geht mir übrigens auf den Keks:
    BeginUpdate() und EndUpdate() kennt es nicht.
    Wenn 2 Zeichen markiert sind und beide unterschiedliche Schrift haben, aber beide auf Fett gesetzt werden sollen, ist SelectionFont=null und man darf beide Zeichen einzeln setzen und muss erst wieder für jedes Zeichen das Font-Objekt zusammenbasteln...



  • Servus,

    if ( e.KeyCode == Keys.V && e.Modifiers == Keys.Control )
    {
    	this.PasteText();
    	e.Handled = true;
    	return;
    }
    

    Du musst beide Tasten gleichzeitig überprüfen. nicht nacheinander...

    mfg
    Hellsgore



  • Das klappt auch nicht ;/
    Aus irgendwelchen Gründen taucht bei Drücken von STRG und gleichzeitigem Drücken von V überhaupt kein V in den KeyEventArgs auf.
    KeyCode enthält dann laut Debugger immer Keys.Control und Keys.ControlKey

    Gibt es ne Möglichkeit direkt die gedrückten Tasten auszulesen ?
    Ähnlich wie die GetKeyState() Funktion bei der WinAPI ?
    Dann bräuchte ich das KeyDown-Event nur noch um festzustellen ob überhaupt was gedrückt wurde ?


Anmelden zum Antworten