2011-01-23 3 views
-1

J'ai écrit ce code, mais quand je l'exécute le débogueur me demande "DragDrop inscription n'a pas réussi." dans FormAdver.show(); ligne, comment puis-je le réparer?Problème dans le formulaire Afficher

public void ResiveFunc(string FuncResive) 
    { 


     string FuncName = ""; 
     string FuncValue = ""; 
     for (int i = 0; i <= 2; i++) 
     { 
      FuncName += FuncResive[i]; 
     } 
     for (int j = 4; j <= FuncResive.Length - 1; j++) 
     { 
      FuncValue += FuncResive[j]; 
     } 
     MessageBox.Show(FuncName); 
     MessageBox.Show(FuncValue); 
     if (FuncName == "TAB") 
     { 
      Form1 mainForm = new Form1(); 
      frmAddver formAddver = new frmAddver(); 
      formAddver.Show(); 
      mainForm.AdverFilter(FuncValue); 

     } 
    } 
+0

double possible de [Problème avec multi thread/appel: (] (http://stackoverflow.com/questions/4769915/problem-with-multi-threaded-invocation) –

+1

Ceci est juste une re-hachage de votre question précédente, je pourrais répéter mes questions sur mainForm etc mais vous les ignorerez à nouveau –

+0

Petite amélioration: considérer passer l'objet au lieu de la chaîne: 'class Func {public string Nom {get; set;} chaîne publique Valeur {get; set;} public static Func FromString (chaîne funcReceive) {parse_string_as_you_do_it_now}} 'et passez-le à votre méthode' public void ReceiveFunc (Func func) ' –

Répondre

0

Vous avez deux options

  1. Assurez-vous AllowDrop est false sur les contrôles dans FormAdver

  2. Assurez-vous que le l'Etat Apartment est situé à STA. Soit par Thread.CurrentThread.ApartmentState = ApartmentState.STA ou en utilisant l'attribut [STAThread].

Questions connexes