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

Очень легко скопировать и вставить объекты в буфер обмена на C#. Единственный реальный трюк - украсить класс, который вы хотите использовать с атрибутом Serializable. Это позволяет буферизировать сериализацию и десериализацию экземпляров класса. Следующий код показывает этот пример в классе Person.

[Serializable()]
class Person
{
    public string FirstName;
    public string LastName;
}

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

// Скопировать человека в буфер обмена.
private void btnCopy_Click(object sender, EventArgs e)
{
    Person person = new Person() {
        FirstName = txtFirstName.Text,
        LastName = txtLastName.Text
    };
    Clipboard.SetDataObject(person);
}

Этот код использует значения в текстовых полях программы для создания нового объекта Person. Затем он просто вызывает метод Clipboard объекта SetDataObject объекта.

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

// Вставьте человека из буфера обмена.
private void btnPaste_Click(object sender, EventArgs e)
{
    IDataObject data_object = Clipboard.GetDataObject();
    if (data_object.GetDataPresent(
        "howto_clipboard_objects.Person"))
    {
        Person person = (Person)data_object.GetData(
            "howto_clipboard_objects.Person");
        txtDropFirstName.Text = person.FirstName;
        txtDropLastName.Text = person.LastName;
    }
    else
    {
        txtDropFirstName.Clear();
        txtDropLastName.Clear();
    }
}

Сначала код использует метод GetDataPresent, чтобы увидеть, поддерживает ли буфер обмена объект с правильным типом. Обратите внимание, что имя типа объекта включает в себя пространство имен.

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector