Какое отношение к WinForms имеет класс Clipboard или SendKeys?
Вопрос
Оба этих полезных класса находятся в Системе.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 полезен, поскольку он позволяет вам получать данные, хранящиеся в буфере обмена компьютера, особенно полезно, если это данные, поступающие из другого запущенного приложения.Буфер обмена - ожидаемое поведение почти во всех приложениях, которые имеют какую-либо семантику копирования / вставки.