C#. Использование буфера обмена. Часть 1.
Доброго времени суток! В этой статье я познакомлю Вас с возможностями использования буфера обмена операционной системы, которые предоставляет язык программирования C#. Данной теме я планирую посвятить несколько статей, поэтому в первой (той, которую Вы сейчас читаете) я расскажу о самых основных моментах, но которых может хватить пожалуй в 90% случаях с которыми вы столкнетесь. Вы узнаете как записать (поместить) текст в буфер обмена, как извлечь текст из буфера обмена, как очистить буфер обмена и т.п. И так, можно сказать что буфер обмена есть не что иное как промежуточное хранилище, в которое помещаются определенные данные, когда пользователь операционной системы копирует (Ctrl+C)/вырезает (Ctrl+X) какую-либо информацию (будь то текст из текстового редактора, или группа файлов из каталога и т.п.). При этом, когда пользователь в дальнейшем вставляет скопированные/вырезанные данные (Ctrl+V), копия этих данных извлекается из буфера обмена и помещается в указанное место. И на самом деле, далеко не все пользователи догадываются о существовании буфера обмена, точнее они знают что можно выполнять операции копирования/вставки, но о том как это всё работает, пользователю знать не обязательно, но другое дело программист. Программисту может понадобиться доступ к данным, которые находятся в буфере обмена (как правило, это нужно для повышения удобства использования программы). Например, можно позволить пользователю копировать данных из Excel-файла, и вставлять в компонент ListView, расположенный на одной из формы Вашей программы. При этом, перед вставкой скопированных из Excel-файла данных, Вы можете их как-то обрабатывать или преобразовывать. В общем, все зависит от прикладной задачи.
Но давайте перейдем к языку программирования C#. Для доступа к буферу обмена, в языке программирования C# есть класс «Clipboard», имеющий ряд статических методов, с помощью которых и выполняются все операции с буфером обмена. И как обещал, в этой статье я дам только самую базовую информацию по работе с буфером обмена. Я расскажу о том как помещать данные в буфер обмена ОС, как их извлекать оттуда, как очищать буфер обмена (удалять из него всё содержимое).
Для простоты я буду касаться только текстовых данных (на самом деле, в буфер обмена можно поместить не только текст, но и изображения и другие данные).
И так, теперь к практике… Для решения поставленных выше задач, нам понадобятся следующие статические методы класса «Clipboard»:
Метод | Описание |
---|---|
SetText(string) | Помещает текст (переданный в качестве аргумента) в буфер обмена |
GetText() | Возвращает текст из буфера обмена (помещенный туда до этого) |
Clear() | Удаляет содержимое буфера обмена |
ContainsText() | Если в буфере обмена содержится текст — метод вернет true (в противном случае — false) |
Как видите, всего четыре метода, и только один принимает параметры (а точнее — один параметр). Ниже, я привел фрагмент исходного кода, который можно вставить в обработчик «клика» какой-нибудь кнопки на форме. В результате, при нажатии на эту кнопку, программа проверяет есть ли в буфере обмена текст, и если есть, то выводит его в сообщении (MessageBox’e), в противном случае, выводит сообщение о том, что в буфере обмена нет текста.
//Если в буфере обмен содержится текст if (Clipboard.ContainsText() == true) { //Извлекаем (точнее копируем) его и сохраняем в переменную string someText = Clipboard.GetText(); //Выводим показываем сообщение с текстом, скопированным из буфера обмена MessageBox.Show(this, someText, "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { //Выводим сообщение о том, что в буфере обмена нет текста MessageBox.Show(this, "В буфере обмена нет текста", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Warning); }
Чтобы попробовать как это работает, вставьте приведенный выше код в Вашу программу (например. в обработчик нажатия на кнопку), откомпилируйте и запустите её. После чего, откройте какой-нибудь текстовый документ, выделите фрагмент текста в нем (желательно небольшой), и нажмите комбинацию клавиш «Ctrl+С». Нажмите на кнопку (к которой привязан обработчик с фрагментом приведенного выше кода.
А ниже, я привожу фрагмент кода, который вставляет в буфер обмена текст: «Тест из программы«.
//Помещаем нужный нам текст в буфер обмена (обратите внимание, перед размещением нового текста, содержимое буфера обмена удаляется из него) Clipboard.SetText("Текст из программы");
Я думаю что Вы без проблем разберетесь с тем, как использовать данный код в своей программе… Собственно вот и вся базовая информация, которую нужно знать, чтобы начать работать с буфером обмена в своих программах на C#.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.