Clipboard Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет методы для размещения данных и извлечения данных из системного буфера обмена. Этот класс не наследуется.
public ref class Clipboard sealed
public sealed class Clipboard
type Clipboard = class
Public NotInheritable Class Clipboard
- Наследование
-
Clipboard
Примеры
В следующем примере кода используются Clipboard методы для размещения данных и извлечения их из системного буфера обмена. Этот код предполагает button1, button2textBox1и textBox2 был создан и помещен в форму.
Метод button1_Click вызывает SetDataObject выделенный текст из текстового поля и помещать его в системный буфер обмена.
Метод button2_Click вызывает GetDataObject получение данных из системного буфера обмена. Код использует и DataFormats извлекает IDataObject возвращаемые данные и отображает данные в textBox2.
private:
void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Takes the selected text from a text box and puts it on the clipboard.
if ( !textBox1->SelectedText->Equals( "" ) )
{
Clipboard::SetDataObject( textBox1->SelectedText );
}
else
{
textBox2->Text = "No text selected in textBox1";
}
}
void button2_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
{
// Declares an IDataObject to hold the data returned from the clipboard.
// Retrieves the data from the clipboard.
IDataObject^ iData = Clipboard::GetDataObject();
// Determines whether the data is in a format you can use.
if ( iData->GetDataPresent( DataFormats::Text ) )
{
// Yes it is, so display it in a text box.
textBox2->Text = (String^)(iData->GetData( DataFormats::Text ));
}
else
{
// No it is not.
textBox2->Text = "Could not retrieve data off the clipboard.";
}
}
private void button1_Click(object sender, System.EventArgs e) {
// Takes the selected text from a text box and puts it on the clipboard.
if(textBox1.SelectedText != "")
Clipboard.SetDataObject(textBox1.SelectedText);
else
textBox2.Text = "No text selected in textBox1";
}
private void button2_Click(object sender, System.EventArgs e) {
// Declares an IDataObject to hold the data returned from the clipboard.
// Retrieves the data from the clipboard.
IDataObject iData = Clipboard.GetDataObject();
// Determines whether the data is in a format you can use.
if(iData.GetDataPresent(DataFormats.Text)) {
// Yes it is, so display it in a text box.
textBox2.Text = (String)iData.GetData(DataFormats.Text);
}
else {
// No it is not.
textBox2.Text = "Could not retrieve data off the clipboard.";
}
}
Private Sub button1_Click(sender As Object, e As System.EventArgs)
' Takes the selected text from a text box and puts it on the clipboard.
If textBox1.SelectedText <> "" Then
Clipboard.SetDataObject(textBox1.SelectedText)
Else
textBox2.Text = "No text selected in textBox1"
End If
End Sub
Private Sub button2_Click(sender As Object, e As System.EventArgs)
' Declares an IDataObject to hold the data returned from the clipboard.
' Retrieves the data from the clipboard.
Dim iData As IDataObject = Clipboard.GetDataObject()
' Determines whether the data is in a format you can use.
If iData.GetDataPresent(DataFormats.Text) Then
' Yes it is, so display it in a text box.
textBox2.Text = CType(iData.GetData(DataFormats.Text), String)
Else
' No it is not.
textBox2.Text = "Could not retrieve data off the clipboard."
End If
End Sub
Комментарии
Список предопределенных форматов, используемых с Clipboard классом, см. в DataFormats этом разделе.
Вызов SetDataObject , чтобы поместить данные в буфер обмена, заменив его текущее содержимое. Чтобы поместить постоянную копию данных в буфер обмена, задайте copy для параметра trueзначение .
Note
Чтобы поместить данные в буфер обмена в нескольких форматах, используйте DataObject класс или реализацию IDataObject . Поместите данные в буфер обмена в нескольких форматах, чтобы максимально повысить вероятность того, что целевое приложение, требования к формату которого могут не знать, может успешно получить данные.
Вызов GetDataObject для получения данных из буфера обмена. Данные возвращаются в виде объекта, реализующего IDataObject интерфейс. Используйте методы, указанные IDataObject и поля, DataFormats для извлечения данных из объекта. Если вы не знаете формат полученных данных, вызовите GetFormats метод IDataObject интерфейса, чтобы получить список всех форматов, в которые хранятся данные. Затем вызовите GetData метод IDataObject интерфейса и укажите формат, который может использовать приложение.
Класс Clipboard предоставляет дополнительные методы, упрощающие работу с системным буфером обмена.
Clear Вызовите метод, чтобы удалить все данные из буфера обмена. Чтобы добавить данные определенного формата в буфер обмена, заменив существующие данные, вызовите соответствующий Set метод Format, например SetTextили вызовите SetData метод, чтобы указать формат. Чтобы получить данные определенного формата из буфера обмена, сначала вызовите соответствующий Contains метод Format (напримерContainsText), чтобы определить, содержит ли буфер обмена данные в этом формате, а затем вызовите соответствующий Get метод Format (напримерGetText), чтобы получить данные, если буфер обмена содержит его. Чтобы указать формат в этих операциях, вызовите ContainsData вместо него методы и GetData методы.
Note
Все приложения на основе Windows совместно используют системный буфер обмена, поэтому содержимое может изменяться при переходе на другое приложение.
Объект должен быть сериализуемым, чтобы его можно было поместить в буфер обмена. Если передать несериализируемый объект методу Буфера обмена, метод завершится ошибкой, не вызывая исключения. Дополнительные сведения о сериализации см. в статье System.Runtime.Serialization о сериализации. Если для целевого приложения требуется очень конкретный формат данных, заголовки, добавленные в данные в процессе сериализации, могут предотвратить распознавание данных приложением. Чтобы сохранить формат данных, добавьте данные в массив ByteMemoryStream и передайте MemoryStream его в SetData метод.
Класс Clipboard можно использовать только в потоках, настроенных на режим однопотоковой модели (STA). Чтобы использовать этот класс, убедитесь, что метод Main помечен атрибутом STAThreadAttribute.
При использовании формата метафайла с буфером обмена могут потребоваться специальные рекомендации. Из-за ограничений в текущей реализации класса DataObject формат метафайла, используемый платформой .NET Framework, может не распознаваться приложениями, используюющими старый формат метафайла. В этом случае необходимо взаимодействовать с интерфейсами программирования приложений Для буфера обмена Win32 (API).
Методы
| Имя | Описание |
|---|---|
| Clear() |
Удаляет все данные из буфера обмена. |
| ContainsAudio() |
Указывает, есть ли данные в буфере обмена в WaveAudio формате. |
| ContainsData(String) |
Указывает, есть ли данные в буфере обмена, которые имеются в указанном формате или могут быть преобразованы в этот формат. |
| ContainsFileDropList() |
Указывает, есть ли данные в буфере обмена, который находится в FileDrop формате или может быть преобразован в этот формат. |
| ContainsImage() |
Указывает, есть ли данные в буфере обмена, который находится в Bitmap формате или может быть преобразован в этот формат. |
| ContainsText() |
Указывает, есть ли данные в буфере обмена в Text формате или UnicodeText в зависимости от операционной системы. |
| ContainsText(TextDataFormat) |
Указывает, есть ли текстовые данные в буфере обмена в формате, указанном указанным TextDataFormat значением. |
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| GetAudioStream() |
Извлекает аудиопоток из буфера обмена. |
| GetData(String) |
Извлекает данные из буфера обмена в указанном формате. |
| GetDataObject() |
Извлекает данные, которые в настоящее время находятся в системном буфере обмена. |
| GetFileDropList() |
Извлекает коллекцию имен файлов из буфера обмена. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetImage() |
Извлекает изображение из буфера обмена. |
| GetText() |
Извлекает текстовые данные из буфера обмена в Text зависимости UnicodeText от операционной системы. |
| GetText(TextDataFormat) |
Извлекает текстовые данные из буфера обмена в формате, указанном указанным значением TextDataFormat . |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| SetAudio(Byte[]) |
Очищает буфер обмена, а затем добавляет Byte массив в WaveAudio формате после преобразования в него Stream. |
| SetAudio(Stream) |
Очищает буфер обмена, а затем добавляет его Stream в WaveAudio формат. |
| SetData(String, Object) |
Очищает буфер обмена и добавляет данные в указанном формате. |
| SetDataObject(Object, Boolean, Int32, Int32) |
Очищает буфер обмена, а затем пытается поместить данные в указанное количество раз и с указанной задержкой между попытками, при необходимости оставляя данные в буфере обмена после выхода приложения. |
| SetDataObject(Object, Boolean) |
Очищает буфер обмена, а затем помещает данные в него и указывает, должны ли данные оставаться после завершения работы приложения. |
| SetDataObject(Object) |
Очищает буфер обмена, а затем помещает в него неперсистентные данные. |
| SetFileDropList(StringCollection) |
Очищает буфер обмена и добавляет коллекцию имен файлов в FileDrop формате. |
| SetImage(Image) |
Очищает буфер обмена, а затем добавляет его Image в Bitmap формат. |
| SetText(String, TextDataFormat) |
Очищает буфер обмена, а затем добавляет текстовые данные в формат, указанный указанным TextDataFormat значением. |
| SetText(String) |
Очищает буфер обмена, а затем добавляет текстовые данные в Text формат или UnicodeText в зависимости от операционной системы. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |