2009-12-09 3 views
10

Ich habe mehrere Textfelder in einem Windows-Formular.Wie kann ich STRG-V (Einfügen) in einer Winforms-Textbox zulassen?

Ich kann Text nicht mit CTRL-V einfügen, obwohl ich immer noch mit der rechten Maustaste klicken und Einfügen auswählen kann. Das ist ziemlich nervig.

Ich habe dies mit der KeyPreview des Formulars als sowohl wahr als auch falsch versucht. TextBox.ShortcutsEnabled ist ebenfalls wahr.

+1

Nicht wirklich mit diesem Code verwandt, wenn andere Textfelder ohne Ereignisse dasselbe tun, wie? –

+0

Einverstanden, ich habe die Frage bearbeitet, um das zu reflektieren. –

+0

Ist das fragliche Formular ein "Kind" Formular? –

Antwort

15

überprüfen Sie, ob Sie ein Menü auf dem Formular mit einer Verknüpfung für Ctrl-V haben.

+1

Bingo setzen. Das Formular selbst hatte kein Menü, aber sein MDI-Elternteil. Es war das Standardmenü "Bearbeiten", das die Menüleistensteuerung bietet. Ich habe den Abschnitt Bearbeiten aus dem Menü entfernt und alles ist wieder normal. –

+1

Wow. Vielen Dank an diesem einen. Ich hatte die gleiche Situation, der MDI-Elternteil hatte die Abkürzung. – granadaCoder

+1

@granadaCoder: ja, es ist/so/nervig wenn das Ding vorbei ... da ... wirkt das Ding runter ... hier. –

4

Der Code, den Sie gepostet haben, hat nichts mit Ihrem Ctrl + V-Problem zu tun, das ist sicher. Nicht viel mehr kann ich dir sagen, wenn du nicht mehr Code postest.

Spezieller Code sollte nicht für Strg + V benötigt werden, aber eine Vermutung, die ich habe, ist sicherzustellen, dass Sie YourTextBoxId.ShortcutsEnabled auf True festgelegt haben.

+2

danke, und ich habe die Frage bearbeitet, aber das sollte ein Kommentar sein. –

+0

Ich habe meine Antwort aktualisiert, bitte sehen Sie es. –

+0

Ich habe das bereits überprüft, es ist auf wahr gesetzt. –

9

sollte der folgende Code helfen:

private void textBox1_KeyUp(object sender, KeyEventArgs e) { 
    if (e.KeyData == (Keys.Control | Keys.V)) 
     (sender as TextBox).Paste(); 
} 
+1

Eine nette Arbeit, aber ich müsste Code für Cut und Copy hinzufügen. Ich würde es vorziehen, zum Standardverhalten zurückzukehren. –

+0

Dies wird eingefügt, wenn nur ein V gedrückt wird, richtig ?! –

+0

@Josh: nicht in meiner Umgebung. Ein 'v' bleibt ein 'v', während die Kombination der Tasten 'control' und 'v' zu einer Paste-Aktion wird. – Webleeuw

1

Ja .. Ich weiß, dass das beantwortet wird, aber ich dachte, ich würde meine 2cents nur zum Spaß werfen. Ich hatte auch ein ähnliches Problem. Den Wert für TextBox.ShortcutsEnabled auf True zu setzen, hat nichts für mich bewirkt. Ich war überrascht, die Notiz von Microsoft hier zu sehen: http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.shortcutsenabled.aspx in Bezug auf dieses Problem. Ziemlich interessant, um es gelinde auszudrücken.

Vor diesem Hintergrund implementierte ich nur die Funktionalität über die Schlüssel sogar Handler wie in dem Beitrag von Webleeuw angegeben.

+0

Ich erhebe diese Antwort, weil ich ein scharfes Auge habe und diesen Kommentar sehe. // Das TextBox-Steuerelement unterstützt keine Tastenkombinationen. Nice find PunkConservative. – granadaCoder

2

Ich ging auch mit dem gleichen Problem durch. Nach langem googeln fand ich endlich die Lösung. Dies liegt daran, dass in der Anwendung Strg + V Verknüpfung bereits definiert wurde (Menü Bearbeiten-> Einfügen). Danach Entfernen ... es gut für mich arbeiten .... Hoffe, dass es hilft ....

+0

Das war das Problem, und es ist zufällig auf meinem MDI-Formular (wie an anderer Stelle in diesem Beitrag von anderen erwähnt.) – granadaCoder

2

Das Steuerelement TextBox nicht die CTRL unterstützt + Ein Schnelltaste, wenn die Multiline-Eigenschaft Wert true .

+0

Sie haben Recht, es heißt so in der Dokumentation: http://msdn.microsoft.com/en- us/library/system.windows.forms.textboxbase.shortcutsenabled.aspx – user1032613

-1

Sie können bereits zugewiesene Verknüpfung zu anderen Steuerelement kommentieren, aus Designer.cs/.vb Formular Ihres Formulars. In meinem Fall löste ich es für das Menü in Art und Weise für die Steuerung

//this.copyToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys) 
((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.C))); 
1

Zum Eigenschaften folgende:

Eigenschaften> Verhalten> Shortcuts Aktiviert = true

Job gemacht - wird nun Standard-Windows-accept Tastenkombinationen für dieses Steuerelement

Verwandte Themen