Глюк с копированием данных в буфер из DataGridView

Есть DataGridView с некими мега-важными данными, которые мы хотим скопировать в Excel через гениальную особенность ОС Windows "буфер обмена". Преисполненные самых радужных надежд жмем Ctrl+C, Ctrl+V и получаем тотальную абракадабру в левой кодировке. "Если видишь в стенке люк, не пугайся - это глюк." В данном случае глюк .Net и Visual Studio (как минимум 2008). Можно слать мольбы и проклятия далеким редмондским богам, можно просто повесить следующий код на событие KeyDown нашего DataGridView.

// правильное копирование в буфер
private void copySelectedRowsToClipboard(DataGridView dgv)
{
    dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.EnableWithoutHeaderText;
    Clipboard.Clear();
    if (dgv.GetClipboardContent() != null)
    {
        Clipboard.SetDataObject(dgv.GetClipboardContent());
        Clipboard.GetData(DataFormats.Text);
        IDataObject dt = Clipboard.GetDataObject();
        if (dt.GetDataPresent(typeof(string)))
        {
            string tb = (string)(dt.GetData(typeof(string)));
            Encoding encoding = Encoding.GetEncoding(1251);
            byte[] dataStr = encoding.GetBytes(tb);
            Clipboard.SetDataObject(encoding.GetString(dataStr));
        }
    }
    dgv.ClipboardCopyMode = DataGridViewClipboardCopyMode.Disable;
}

// привязка к событию копирования
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C)
    if (((DataGridView)sender).SelectedCells.Count > 0)
    {
        copySelectedRowsToClipboard((DataGridView)sender);
    }
}

Комментарии

Глюк с копированием данных в буфер из DataGridView — Комментарии (4)

    • 12 & 19-you don’t get it. Not at all. Wake up. Change is about to slap you in the face and why? You did it to yourselves, th17t#82a&;s why. OSHNA is in turmoil, it is a fact. The Blogger is Spot-On, “Our association leaders may have a cloudy vision of their roles and duties and have absolutely no clear vision on the direction that the majority of neighbors need or want.” Exactly why neighbors are throwing OSHNA to the curb and going their own way. Ya-Hearing that OSHNA board?-1992 Member disgusted

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>