2010-10-24 4 views
0

j'ai essayé de faire une liste de tableau de 5 élément dans lequel récent texte 5 du presse-papiers est copiépeut-on copier le texte presse-papiers à un tableau

mais je ne suis pas en mesure de le faire à chaque fois que le texte du presse-papiers écrase la précédente et dans le premier élément de tableau

et imprime seulement le dernier je veux imprimer tout comment puis-je faire cela.

si mon cas est THN possible s'il vous plaît me donner une solution

+0

Pouvez-vous montrer votre code au lieu de la description du problème? –

+0

Avez-vous essayé d'utiliser String.Join (',', myArray) – Kane

+2

-1, car nobdy peut deviner comment fonctionne votre code. Pensez-y avant de poster. – spender

Répondre

1

Que diriez-vous: Vous gérez un objet personnalisé pendant que vous lisez/écriture sur Clipboard. Par exemple, MyCustomClipboardClass.

Chaque fois que vous êtes sur le point de déplacer des données dans le presse-papiers;

  • Obtenez votre objet MyCustomClipboardClass.
  • Ajoutez votre texte à celui-ci.
  • Enregistrez cet objet dans le Presse-papiers.

Voir ci-dessous:

[Serializable] 
class MyCustomClipboardClass 
{ 
    List<string> m_lstTexts = new List<string>(); 

    public void AddText(string str) 
    { 
     m_lstTexts.Add(str); 
    } 
} 
0

Vous pouvez faire quelque chose comme ça, si je comprends correctement à la question (si vous voulez conserver 5 derniers éléments du presse-papiers programatically):

const int MaxItems = 5; 
    static readonly List<string> ClipboardData = new List<string>(); 

    public static void SaveClipboard() 
    { 
     ClipboardData.Add(Clipboard.GetText()); 
     if (ClipboardData.Count > MaxItems) ClipboardData.RemoveAt(0); 
    } 

    // You don't need lines later, I show them just as example 
    [STAThreadAttribute] 
    static void Main() 
    { 
     for (int i = 0; i < 10; i++) 
     { 
      Clipboard.SetText(i.ToString()); 
      SaveClipboard(); 
     } 

     foreach (var s in ClipboardData) 
     { 
      Console.WriteLine(s); 
     } 

     Console.ReadLine(); 
    } 

Si vous besoin @KMan way vérifier cette question aussi: C#/WPF Can I Store more that 1 type in Clipboard?


Vous devez donc appeler SaveClipboard() après chaque modification du presse-papiers. Toutes les données seront rassemblées dans ClipboardData

+0

J'ai essayé celui-ci, mais à la fois dans l'application de formulaire de gain et l'application de la console. – shruti

+0

application de la console. montre une erreur que le presse-papiers ne trouve pas. pour cela, je dois inclure en utilisant System.Windows.Forms; dans l'application de la console. programme – shruti

+0

sd dans l'application de formulaire de gain. il ne wrk il montre Main() erreur – shruti

Questions connexes