Какое отношение к WinForms имеет класс Clipboard или SendKeys?

StackOverflow https://stackoverflow.com/questions/1615962

  •  06-07-2019
  •  | 
  •  

Вопрос

Оба этих полезных класса находятся в Системе.Windows.Ссылка на формы....

Я не вижу особой связи между ними и winforms..Кто-нибудь знает, почему они там?

Спасибо.

Это было полезно?

Решение

Они внутренне используют API-интерфейсы платформы Win32, на которых была создана WinForm.

Другие советы

Windows Forms была, когда она была создана, ЕДИНСТВЕННЫМ (Microsoft) средством создания графического пользовательского интерфейса на рабочем столе.

SendKeys и Буфер обмена используют Windows API для управления приложениями с графическим интерфейсом.Когда это было создано, было разумно предположить, что они будут использоваться из программы с графическим интерфейсом, которая (тогда) означала приложение Windows Forms.

Ни то, ни другое обычно не используется из консольного приложения, но если вы делали это, включение "оконных" сборок (что в то время означало Windows forms) было разумным решением, поскольку вы работаете с оконной системой.

Однако я согласен, что теперь, когда WPF существует, было бы лучше разместить их в отдельной сборке.Однако Microsoft очень хорошо относится к поддержанию обратной совместимости.

С этой целью они оставили это в пространствах имен Windows Forms, но также внедрили Система.Windows.Буфер обмена для приложений WPF.(Я полагаю, они решили, что SendKeys не требуется в современной разработке, поскольку этим немного злоупотребляют, и просто оставили это по замыслу.)

Вообще говоря, вы бы не использовали Clipboard или SendKeys с ASP.Сетевое приложение или консольное приложение, поэтому для них имеет смысл находиться в System.Windows.Forms.

Где бы вы ожидали, что они будут?В System.ClipboardAndSendKeys?

Клавиши отправки могут быть удобны для выделения текстовых полей.Клавиши отправки "{HOME}+{END}" - это типичный метод, перенесенный из Visual Basic, как только текстовое поле получает фокус.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top