1. ホーム
  2. c#

[解決済み] C#でデータをクリップボードにコピーする方法

2022-03-19 02:13:11

質問内容

C#で文字列(例:"hello")をシステムクリップボードにコピーして、次に CTRL+V と表示されるのですか?

解決方法は?

異なるアセンブリと異なるネームスペースに存在する2つのクラスがあります。

  • WinForms: 以下の名前空間宣言を使用し、以下のことを確認してください。 Main がマークされています。 [STAThread] 属性があります。

    using System.Windows.Forms;
    
    
  • WPF: 次の名前空間宣言を使用します。

    using System.Windows;
    
    
  • console: への参照を追加します。 System.Windows.Forms を使用する場合は、次の名前空間宣言を使用してください。 Main がマークされています。 [STAThread] 属性があります。別のステップバイステップガイド 回答

    using System.Windows.Forms;
    
    

正確な文字列(この場合、リテラル)をコピーすること。

Clipboard.SetText("Hello, clipboard");

テキストボックスの内容をコピーするには、次のいずれかを使用します。 テキストボックス.コピー() または、最初にテキストを取得してから、クリップボードの値を設定します。

Clipboard.SetText(txtClipboard.Text);

例としてこちらをご覧ください . または... MSDN公式ドキュメント または WPFはこちら .


備考

  • クリップボードはデスクトップUIの概念であり、ASP.Netのようなサーバーサイドのコードで設定しようとしても、サーバー上の値を設定するだけで、ユーザーがブラウザで見ることができる値には何の影響もありません。リンク先の回答では、クリップボードアクセスコードをサーバーサイドで実行することができます。 SetApartmentState ということですが、あなたが実現したいのは、このようなことではなさそうです。

  • この質問で説明した内容に従ってもまだ例外が発生する場合は、以下を参照してください。 現在のスレッドはシングルスレッドアパートメント(STA)に設定されている必要があります。

  • この質問と回答は通常の.NETを対象としています。.NET Coreについては - を参照してください。 .Net Core - クリップボードにコピーしますか?