Справка по буферу обмена C # - PullRequest
0 голосов
/ 04 октября 2010

Я копирую содержимое файла Excel в буфер обмена в программе, которую я написал. Затем я могу использовать эти данные в памяти, вместо того чтобы постоянно общаться в чате с Excel.

Когда я закончу с данными, я вызываю метод очистки, который сначала вызывает Clipboard.Clear (), а затем закрывает все листы / книги / приложения Excel и т. Д.

Проблема в том, что, хотя я очищаю буфер обмена перед закрытием листов Excel, я получаю всплывающее окно, в котором все еще говорится, что в буфере обмена содержится значительное количество данных. Кто-нибудь знает почему?

Спасибо

Даррен.

Ответы [ 4 ]

3 голосов
/ 04 октября 2010

Не уверен, почему это происходит, но вы пытались установить _Application.DisplayAlerts = false; ( MSDN ) перед тем, как закрыть листы, чтобы посмотреть, предотвращает ли это предупреждение?

0 голосов
/ 04 октября 2010

Ну, в конце, попробуйте скопировать пустую строку в буфер обмена и оставить ее, тогда Excel может не дать никакого предупреждения. Но используйте Excel API, чтобы скопировать пустую строку в буфер обмена.

0 голосов
/ 04 октября 2010

Возможно, вы могли бы использовать

Application.CutCopyMode = false;

http://msdn.microsoft.com/en-us/library/ff839532.aspx

0 голосов
/ 04 октября 2010

Вы можете попробовать установить свойство Excel CutCopyMode для отмены информации о текущей копии:

Application.CutCopyMode = false;

Другая идея состоит в том, чтобы установить буфер обмена на String.Empty, чтобыскопированные данные достаточно малы, чтобы обойти всплывающее предупреждение.Это может быть сделано из листа Excel, а не из обычного буфера обмена (т. Е. Скопируйте ячейку из активного листа в Excel).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...