Копировать и вставить данные в нескольких форматах в буфер обмена в C#

В этом примере показано, как копировать и вставлять данные в несколько форматов в буфер обмена. Он сохраняет данные в форматах Rich Text (RTF), текста и HTML. Когда вы вставляете данные, он отдельно отображает каждый из доступных форматов.

Следующий код показывает, как программа копирует данные в буфер обмена.

// Копирование данных в буфер обмена в форматах текста, RTF и HTML.
private void btnCopy_Click(object sender, EventArgs e)
{
    // Создаем объект DataObject.
    DataObject data_object = new DataObject();

    // Добавить данные в различных форматах.
    data_object.SetData(DataFormats.Rtf, rchSource.Rtf);
    data_object.SetData(DataFormats.Text, rchSource.Text);

    string html_text;
    html_text = "\r\n";
    html_text += "  The Quick Brown Fox\r\n";
    html_text += "  \r\n";
    html_text += rchSource.Text + "\r\n";
    html_text += "  \r\n";
    html_text += "";
    data_object.SetData(DataFormats.Html, html_text);

    // Поместите данные в буфер обмена.
    Clipboard.SetDataObject(data_object);
}

Сначала код создает новый DataObject. Он вызывает метод SetData объекта для сохранения данных в RTF и текстовых форматах. Затем он составляет небольшой документ HTML и снова использует метод SetData объекта данных для сохранения документа в формате HTML.

Сначала код создает новый DataObject. Он вызывает метод SetData объекта для сохранения данных в RTF и текстовых форматах. Затем он составляет небольшой документ HTML и снова использует метод SetData объекта данных для сохранения документа в формате HTML.

...

Следующий код показывает, как программа вставляет данные из буфера обмена.

// Вставить данные из буфера обмена в текст,
// RTF и HTML, если они доступны.
private void btnPaste_Click(object sender, EventArgs e)
{
    // Получить объект DataObject.
    IDataObject data_object = Clipboard.GetDataObject();

    if (data_object.GetDataPresent(DataFormats.Rtf))
    {
        rchRtf.Rtf =
            data_object.GetData(DataFormats.Rtf).ToString();
        txtRtfCode.Text =
            data_object.GetData(DataFormats.Rtf).ToString();
    }
    else
    {
        rchRtf.Clear();
        txtRtfCode.Clear();
    }

    if (data_object.GetDataPresent(DataFormats.Text))
    {
        txtText.Text =
            data_object.GetData(DataFormats.Text).ToString();
    }
    else
    {
        txtText.Clear();
    }

    if (data_object.GetDataPresent(DataFormats.Html))
    {
        txtHtml.Text =
            data_object.GetData(DataFormats.Html).ToString();
    }
    else
    {
        txtHtml.Clear();
    }
 	}

Для каждого типа данных RTF, текста и HTML, код использует метод GetDataPresent объекта Clipboard, чтобы узнать, доступен ли формат. Если это так, в коде используется метод Clipboard GetData для получения данных.

Источник: http://csharphelper.com/blog/2014/09/copy-and-paste-data-in-multiple-formats-to-the-clipboard-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector