Member 13566383 Ответов: 2

Как скопировать несколько строк текста в буфер обмена


Я написал приложение, которое производит несколько (от 3 до 5) строк (строк) вывода.
Поскольку этот текст должен быть отображен, я скопировал его в список, и он работает так, как задумано.
Но я ищу возможность скопировать содержимое в буфер обмена, чтобы пользователь мог вставить этот фрагмент текста в файл.
Я могу выбрать весь контент с помощью SelectionMode "MultiExtended", но мне не удалось перенести его в буфер обмена.
Это выглядит как тривиальная проблема, но тем не менее я застрял.
Как я могу решить свою проблему? Должен ли я использовать для этой задачи другой элемент управления, кроме listBox?

Что я уже пробовал:

Ознакомиться с описание проблемы.
Соответствующая часть моего кода довольно проста:

Мой код довольно прост:
string[] ncBlocks = new string[geoelements.Length];
     for (int i = 0; i < geoelements.Length; i++)
     {
         geoelements[i].Translate(-schneidenradius, -schneidenradius);
         geoelements[i].Mirror(lage == 1 || lage == 4, lage == 1 || lage == 2);
         geoelements[i].Translate(abszisseNull, ordinateNull);
         ncBlocks[i] = geoelements[i].CreateNCBlock(format);
         Console.WriteLine(ncBlocks[i]);
     }
     listBox1.Items.AddRange(ncBlocks); // <== This content I want to copy

Текст, содержащийся в listBox1, воспроизводится в соответствии с назначением. И если пользователь хочет перенести этот текст в файл, он должен иметь возможность скопировать и вставить его.
Может быть, есть событие, которое я мог бы использовать для записи в буфер обмена, если текст был выбран?

Richard MacCutchan

Не видя вашего кода, трудно догадаться, в чем заключается ваша проблема. Сохранение любого количества текста в буфер обмена, безусловно, довольно тривиально.

2 Ответов

Рейтинг:
2

OriginalGriff

Попробовать это:

string[] lines = { "line 1", "line 2", "line 3", "line 4", "line 5" };
Clipboard.SetText(string.Join(Environment.NewLine, lines));


Maciej Los

5ed!

Рейтинг:
1

#realJSOP

Попробуйте один из них:

Для Winforms: System.Windows.Forms.Clipboard.SetText(yourText);
для WPF: System.Windows.Clipboard.SetText(yourText);


Maciej Los

5ed!