Проверьте буфер обмена для скопированных текстов - PullRequest
2 голосов
/ 17 февраля 2010

Я хочу добавить вырезать / скопировать / вставить ContextMenuStrip в RichTextBox, но проблема в том, что я хочу включить или отключить кнопку Вставить относительно текущего состояния буфера обмена Windows .. Я имею в виду, если какой-либо текст уже скопирована, тогда эта кнопка должна быть включена, в противном случае отключена.

Есть идеи, как мне этого добиться?

Ответы [ 2 ]

5 голосов
/ 17 февраля 2010

Вы можете использовать Clipboard.ContainsText, который вы проверяете при открытии контекстного меню

1 голос
/ 17 марта 2010

Примечание о функции ContainsText (Clipboard.HasFormat (CF_TEXT) для Delphi) ... Это определенно единственное хорошее решение. Некоторые приложения фактически переходят к следующему шагу и вставляют текст буфера обмена в буфер для проверки - чтобы увидеть, содержит ли он что-то, что они ищут, например, URL (загрузите «помощники» и музыкальные приложения, как это сделать), или что-то еще, что они распознают, например, записку XML, текст, который будет представлять элемент управления в IDE (Delphi использовал для этого) и т. д. Это ПЛОХИЕ НОВОСТИ, поскольку вы не можете вставлять содержимое буфера обмена, не вызывая нежелательных побочных эффектов, как запуск сообщения WM_RenderFormat для зрителей буфера обмена.

...