Возникла странная проблема при копировании данных ячейки из DataGridView
.У меня есть ContextMenuStrip
, который включает в себя возможность скопировать определенное поле.Когда они выбирают эту опцию в меню, значение копируется / вставляется точно так, как должно.
Мой код для копирования в буфер обмена:
public static void CopyToClipboard(string value)
{
Clipboard.Clear();
Clipboard.SetText(value);
}
Если я возьму это значение и вставлю егов любое другое приложение, и значение является правильным.
Моя проблема вступает в игру, если я выбираю ячейку в DataGridView
и использую клавиши Ctrl-C
для копирования в буфер обмена.Значение, скопированное в буфер обмена, корректно отображается в слове, блокноте, Excel, но у нас есть внутреннее приложение, в которое мы пытаемся вставить значение, и оно превратилось в беспорядочный набор символов.
Мое значение скопированобудет 12345678
, а результатом в этом другом приложении станет -§-ý-:pC|yV-k²-û
Я попытался создать событие KeyDown
на DataGridView
, которое проверит, что это Ctrl-C
с ключами изатем вызовите мою копию в код буфера обмена, но то же самое происходит со значениями.
private void DataGridView_KeyDown(object sender, KeyEventArgs e)
{
if (e.Control && e.KeyCode == Keys.C)
CopyToClipboard(DataGridView2.CurrentCell.Value.ToString());
}
Если я использую событие CellEnter
и вызываю копию в буфер обмена, она работает нормально, но я бы предпочел не копировать в буфер обмена каждый раз, когда вводится ячейка. Кажется, проблеманапрямую с клавишами Ctrl-C
.
private void DataGridView_CellEnter(object sender, DataGridViewCellEventArgs e)
{
CopyAccountToClipboard(DataGridView2.CurrentCell.Value.ToString());
}
У кого-нибудь была такая проблема?Любые предложения о том, как это исправить?