2009-10-23 5 views

ответ

3

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

+0

они все еще могут быть в другой dll .... – Letterman

+1

Но главным образом в user32.dll. – Codism

-1

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

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

+0

= \ так что? он по-прежнему может быть полезен в Windows Service, консоли, WPF ...... – Letterman

+0

re: выбор текста текстового поля: http://msdn.microsoft.com/en-us/library/system.windows. forms.textboxbase.selectall.aspx Кроме того, я не вижу причин, по которым «буфер обмена» не был бы полезен, скажем, в приложении консоли. – theraccoonbear

+0

Я подумал, что когда-то определенное использование самоочевидно. Кстати, служба windows не будет выполняться в проекте форм Windows, и вряд ли вам понадобится ссылка на пространство имен. – t3rse

1

Windows Forms был, когда он был создан, единственным (Microsoft) средством создания графического пользовательского интерфейса на рабочем столе.

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

Ни один из них, как правило, не используется из приложения Консоль, но если вы это делаете, в том числе «оконные» сборки (которые в то время означали формы окон) было разумным делом, работая с системой Windowing.

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

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

0

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

Где вы ожидаете от него быть? В System.ClipboardAndSendKeys?