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