Comment copier des données dans le presse-papiers en C#

Comment puis-je copier une chaîne (E. g "hello") au bloc-notes du système en C#, donc la prochaine fois que j'appuie sur CTRL+V j'aurai "hello"?

345
demandé sur SanD 2010-08-23 12:57:31

4 réponses

vous aurez besoin d'une déclaration namespace:

using System.Windows.Forms;

ou pour WPF:

using System.Windows;

pour copier une chaîne exacte (littérale dans ce cas):

Clipboard.SetText("Hello, clipboard");

pour copier le contenu d'une boîte de texte:

Clipboard.SetText(txtClipboard.Text);

voir ici pour un exemple . Ou... documents officiels MSDN or Here for WPF .

654
répondu Kieren Johnstone 2013-03-25 20:49:21
Clipboard.SetText("hello");

vous devrez utiliser les espaces de noms System.Windows.Forms ou System.Windows pour cela.

40
répondu Bradley Smith 2013-03-20 08:57:20

mon expérience avec ce problème en utilisant WPF C # coping au bloc-notes et System.Threading.ThreadStateException est ici avec mon code qui a fonctionné correctement avec tous les navigateurs:

Thread thread = new Thread(() => Clipboard.SetText("String to be copied to clipboard"));
thread.SetApartmentState(ApartmentState.STA); //Set the thread to STA
thread.Start(); 
thread.Join();

crédits pour ce poste ici

mais cela ne fonctionne que sur localhost, donc ne l'essayez pas sur un serveur, car il ne va pas fonctionner.

côté serveur, Je l'ai fait en utilisant zeroclipboard . La seule façon, après beaucoup de recherches.

31
répondu BMaximus 2018-04-10 13:59:44

pour console projets étape par étape, vous devrez d'abord ajouter la référence System.Windows.Forms . Les étapes suivantes fonctionnent dans Visual Studio Community 2013 avec .NET 4.5:

  1. In Solution Explorer , développez votre projet de console.
  2. clic droit références , puis cliquez sur ajouter référence...
  3. dans le groupe assemblages , sous Framework , sélectionner System.Windows.Forms .
  4. , Cliquez sur OK .

ensuite, ajouter la déclaration suivante using avec les autres en haut de votre code:

using System.Windows.Forms;

ensuite, ajouter l'une des mentions suivantes: Clipboard . SetText déclarations à votre code:

Clipboard.SetText("hello");
// OR
Clipboard.SetText(helloString);

et enfin, ajouter STAThreadAttribute à votre méthode Main comme suit, pour éviter un System.Threading.ThreadStateException :

[STAThreadAttribute]
static void Main(string[] args)
{
  // ...
}
26
répondu skia.heliou 2015-12-03 22:20:45