2010-05-05 3 views
2

IAM пытается использовать код размещен здесь Clipboard event C#с Зритель # буфер обмена ... на светлячок срабатывает событие дважды

это делает работу очень большой, но в то время как тестирование, я обнаружил, что при копировании некоторых приложений в качестве примера firefox, вы получите событие, выполняющееся дважды, поэтому, если вы сохраняете скопированный текст в текстовый файл или записываете его в текстовое поле в приложении, текст, скопированный из firefox, появится дважды?

Кто-нибудь может помочь мне с этой проблемой? большое спасибо

+0

Для этого может быть много причин, информация в вашем вопросе не помогает сузить ее. Возможно, это не должно быть проблемой, если пользователь дважды набирает Ctrl + C. –

ответ

3

Сохраните последний вход, а если новый ввод совпадает с последним, отбросьте?

+0

-1 для уродливой работы. Должно быть только одно событие. Хорошо, удалил -1, так как это казалось слишком скучным. Я признаю, что это иногда полезно/необходимо. –

+0

Как это происходит только с некоторыми приложениями, и происхождение событий не под его контролем, почему этот подход плохой? Я не думаю, что это неправильная практика, чтобы проверить изменение состояния перед выполнением логики. –

+0

невозможно просмотреть содержимое буфера обмена без изменения состояния буфера обмена. Вы не можете исследовать его, не открывая его, и это будет иметь непреднамеренные последствия. Вы можете столкнуться с другими приложениями (вероятно, что-то вроде двойного копирования в первую очередь), и вы можете запускать отложенные запросы рендеринга. –

0

Попробуйте его в «голой» системе, чтобы убедиться, что вы где-то не получаете «эха». Должно быть только одно уведомление. Однако, если что-то другое изменит буфер обмена во время события, вы можете получить два. Например, скруббер текста, управляемый буфером обмена.

Вы также можете получить несколько событий, если приложение, выполняющее копирование, делает это неправильно. Например, когда приложения открывают/закрывают буфер обмена для каждого формата данных (они не должны, это ошибка, если они это делают). Попробуйте выполнить копирование из обычного старого «Блокнота» и посмотреть, «дважды» вы слышите это событие.

0

Есть ли у вас плагины в FF? Похоже, что так. Попробуйте его в «голой» системе с совершенно новым FF и больше ничего.