这两个有用的类都在 System.Windows.Forms 参考下......
我看不出这些和winforms之间有多大关系..有人知道他们为什么在那里吗?
谢谢。
他们在内部使用 WinForm 构建的 Win32 平台 API。
Windows 窗体在创建时是唯一(Microsoft)在桌面上创建图形用户界面的方法。
SendKeys 和剪贴板都使用 Windows API 来操作 GUI 应用程序。创建它时,可以合理地假设这些将在 GUI 程序中使用,这(然后)意味着 Windows 窗体应用程序。
这些通常都不会从控制台应用程序中使用,但如果您这样做,包括“窗口”程序集(当时意味着 Windows 窗体)是一个合理的做法,因为您正在使用视窗系统。
不过,我确实同意,既然 WPF 存在,将它们放在单独的程序集中会更好。然而,微软在保持向后兼容性方面做得很好。
为此,他们将其保留在 Windows 窗体命名空间中,而且还为 WPF 应用程序实现了System.Windows.Clipboard。(我相信他们认为 SendKeys 在现代开发中不是必需的,因为它有点被滥用了,只是被设计遗漏了。)
一般来说,您不会将剪贴板或 SendKeys 与 ASP.Net 应用程序或控制台应用程序一起使用,因此将它们放在System.Windows.Forms
.
你希望他们在哪里?在System.ClipboardAndSendKeys
?
SendKeys 可以方便地突出显示文本框。一旦文本框获得焦点,SendKeys "{HOME}+{END}" 是从 Visual Basic 继承而来的典型技术。
Clipboard 类很有用,因为它允许您获取存储在机器剪贴板上的数据,如果数据来自另一个正在运行的应用程序,则特别有用。在几乎所有具有任何复制/粘贴语义的应用程序中,剪贴板都是预期的行为。