2010-06-09 16 views
6

Mam aplikację formularzy systemu Windows z wieloma formularzami i kontrolkami. Chcę, jeśli użytkownik wybrał jakiś tekst w dowolnej kontroli jakiejkolwiek formy mojej aplikacji i kliknij przycisk Wytnij/Kopiuj/Wklej na pasku narzędzi, aby odpowiednio wykonać operację.Funkcje aplikacji "wycinanie kopiuj-wklej" aplikacji formularzy systemu Windows

im przy użyciu C# .NET'S sendkeys.send („^ C”) na kliknięcie przycisku kopiowania ale to nie działa ...

lub dowolny 1 można stwierdzić, czy jest jakiś sposób, aby wybrany tekst (pomimo wiedzy, która forma/kontrola mojego wniosku).

góry dzięki ...

+1

odpowiedź Niepomocni: http://stackoverflow.com/questions/2881259/editing-many-richtextboxes-and-textboxes –

Odpowiedz

2

Używam tego w metodzie obsługi zdarzenia kopiowania:

if (this.ActiveControl is TextBox) 
{ 
     Clipboard.SetDataObject(((TextBox)this.ActiveControl).SelectedText, true); 
} 
if (this.ActiveControl is RichTextBox) 
{ 
     Clipboard.SetDataObject(((RichTextBox)this.ActiveControl).SelectedText, true); 
} 
if (this.ActiveControl is ComboBox) 
{ 
     Clipboard.SetDataObject(((ComboBox)this.ActiveControl).SelectedText, true); 
} 

Dla pasta, coś takiego:

nCursorPosition = ((RichTextBox)this.ActiveControl).SelectionStart; 
this.ActiveControl.Text = this.ActiveControl.Text.Insert(nCursorPosition, Clipboard.GetText()); 
+1

Mam aplikację mdi z wieloma formularzami , gdy każdy użytkownik może wybrać wiele tekstów w dowolnej formie , gdy użytkownik wybierze tekst w dowolnej formie i naciśnij przycisk kopiowania w menu głównym aplikacji Chcę, aby ten tekst został skopiowany –

5

masz używane schowka skopiować i wkleić wam dane, jeśli nie od zastosowania schowku dla tej kontroli

ten artykuł do schowka więcej o: http://www.geekpedia.com/tutorial188_Clipboard-Copy-and-Paste-with-Csharp.html

+1

Dzięki za odpowiedź. Sprawdziłem link. w takim przypadku programista wie, który pole tekstowe jest zaznaczone. chcę ogólne rozwiązanie. załóżmy, że mam siatkę danych z tysiącami wierszy i kolumn. teraz nie wiem, które komórki zostały wybrane przez użytkownika. Mam wiele form do załatwienia. ponieważ użytkownik może otwierać wiele formularzy w tym samym czasie. więc nie chcę wdrażać takiej techniki dla każdej kontroli i formy. tylko szukanie ogólnego sposobu. –

+1

niż to sprawdzić może pomóc: http://www.voidspace.org.uk/ironpython/winforms/part8.shtml –

1

do swojej drugie pytanie:

Możesz użyć tego rozwiązania What is the preferred way to find focused control in WinForms app?, aby znaleźć aktualnie skoncentrowaną kontrolę.

Następnie sprawdzić, jakiego typu jest to, aby przeczytać wybrane (czyli jeśli jest TextBox użycie SelectedText -Propery http://msdn.microsoft.com/en-us/library/system.windows.controls.textbox.selectedtext.aspx)

+1

to nie działa dla mnie. ponieważ mam aplikację MDI. przez uzyskanie aktywnej kontroli klikam przycisk na pasku narzędziowym zamiast tego pole tekstowe, w którym wybrałem tekst innej formy (dziecko mdi) –

Powiązane problemy