Mam tekst pochodzący z bazy danych w polu tekstowym Multiline, jak mogę skopiować to do schowka, aby użytkownik mógł wkleić go do innego okna lub pliku (np. Z mojej aplikacji do innego pola tekstowego)? LUB do pliku notatnika/słowa, jeśli to możliwe.Jak skopiować zawartość pola tekstowego Multiline do schowka w języku C#?
Odpowiedz
Clipboard.Clear(); //Clear if any old value is there in Clipboard
Clipboard.SetText("abc"); //Copy text to Clipboard
string strClip = Clipboard.GetText(); //Get text from Clipboard
System.Windows.Forms.Clipboard.SetText (..)
http://msdn.microsoft.com/en-us/library/system.windows.forms.clipboard.settext.aspx
Nie ma różnicy w tekście kopiowania z jednego lub multilinii TextBox
do i ze schowka za pomocą Clipboard.SetText()
(i oczywiście Clipboard.GetText()
). Numer TextBox
nadal będzie zawierać pojedynczy kod String
, niezależnie od tego, czy zawiera on podziały wierszy, czy nie. To tylko cukierek do oczu.
Z perspektywy ograniczeń Twoja metoda ClipBoard.SetText()
zawsze akceptuje tylko jeden ciąg znaków, a jego rozmiar jest ograniczony tylko do ilości wolnej pamięci w danym czasie.
Do wklejenia tego tekstu ręcznie do aplikacji takich jak Notatnik lub Word nie jest potrzebny żaden specjalny kod.
Clipboard.SetText(yourTextBox.Text);
to wszystko, czego potrzebujesz.
Do zapisywania wierszy w tekście należy zastąpić „\ n” aby znak nowej linii, jak na przykład:
string textforClipboard = TextBox1.Text.Replace("\n", Environment.NewLine);
Clipboard.Clear();
Clipboard.SetText(textforClipboard);