Есть 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); } }
Спасибо, друг! Твой код сэкономил мне пару часов танцев с бубном.
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
как по мне, интереснее http://www.gotdotnet.ru/forums/3/48515/
Спасибо! Пригодился данный код.