これらの2つの便利なクラスは、どちらもSystem.Windows.Formsリファレンスの下にあります。
それらとwinformsの関係はあまりわかりません。なぜそこにあるのか誰か知っていますか?
ありがとう。
それらは、WinFormが構築されたWin32プラットフォームAPIを内部的に使用します。
Windows フォームは、それが作成されたとき、デスクトップ上にグラフィカル ユーザー インターフェイスを作成する唯一の (Microsoft) 手段でした。
GUI アプリケーションを操作するために、SendKeys とクリップボードはどちらも Windows API を使用しています。これが作成されたとき、これらは GUI プログラム内から使用されると想定するのが合理的でした。これは (当時) Windows フォーム アプリケーションを意味していました。
通常、これらはいずれもコンソール アプリケーションからは使用されませんが、使用する場合は、「ウィンドウ化」アセンブリ (当時はウィンドウ フォームを意味していました) を含めるのが合理的でした。ウィンドウ システム。
ただし、WPF が存在するようになった今、これらを別のアセンブリに配置した方がよいという点には同意します。ただし、Microsoft は下位互換性を維持することに非常に優れています。
この目的のために、彼らはこれを Windows フォームの名前空間に残しましたが、WPF アプリケーション用にSystem.Windows.Clipboardも実装しました。(最近の開発では SendKeys は必要ないと判断したと思います。これは一種の乱用であり、設計上省略されているためです。)
一般的に言えば、ASP.Net アプリケーションまたはコンソール アプリケーションでは Clipboard または SendKeys を使用しないため、System.Windows.Forms
.
彼らはどこにいると思いますか?でSystem.ClipboardAndSendKeys
?
SendKeysは、テキストボックスの強調表示に便利です。SendKeys "{HOME} + {END}"は、テキストボックスにフォーカスがあるとVisualBasicから引き継がれる典型的な手法です。
Clipboardクラスは、マシンのクリップボードに保存されているデータを取得できるため便利です。特に、実行中の別のアプリケーションからのデータである場合に便利です。クリップボードは、コピー/貼り付けのセマンティクスを持つほとんどすべてのアプリケーションで予想される動作です。