2010-06-22 7 views
1

L'application a deux formes. Le formulaire principal (Formulaire # 1) utilise le filetage. L'un de ces threads est utilisé pour lire les paramètres d'un socket TCP/IP. Une fois que la valeur d'un paramètre spécifique a changé, je veux afficher cette nouvelle valeur dans une zone de texte sur le second formulaire (Formulaire # 2).Remplissage d'une zone de texte d'un formulaire avec des données d'une seconde forme

J'ai énuméré ce que je crois être les parties significatives du code ci-dessous.

Formulaire # 1:

//Resetting the manually adjusted 'gusBundlesPlacedOnPallet' parameter 
if (gusBundlesInRow > 0) 
{ 
    gusBundlesInRow = 0; 
    //Update the 'BundlesOnPallet' display on the 'Manual Page' frmManualMode ManualMode = new frmManualMode();   
    ManualMode.NoOfBundlesInPalletizerDisplay(Convert.ToString(iIncomingMsg[15])); 
}//End-if 

Formulaire # 2:

//Creating a NoOfBundlesInPalletizer Delegate 
public delegate void NoOfBundlesInPalletizerDisplayDelegate(string sMessage); 
public void NoOfBundlesInPalletizerDisplay(string sMessage) 
{  
    if (txtBundlesInPalletizer.InvokeRequired) 
    { 
     Invoke(newNoOfBundlesInPalletizerDisplayDelegate(NoOfBundlesInPalletizerDisplay), new object[] { sMessage }); 
    }//End-if 
    else 
    { 
     this.txtBundlesInPalletizer.Text = sMessage; 
    }//End else-if 
}//End method NoOfBundlesToPalletizeDisplay 

La zone de texte sur le formulaire n ° 2 ne montrera pas la nouvelle valeur, bien que si j'insérer un point de rupture juste après je Affectez la nouvelle valeur à la zone de texte (sMessage), elle contient la valeur correcte. En outre, si je ferme le second formulaire, puis le rouvrir, il affichera la valeur correcte. Il me semble que j'ai besoin d'une sorte de "rafraîchissement" de la valeur de la zone de texte?

Quelqu'un peut-il me dire ce que je fais mal?

Merci à l'avance

Terje

Répondre

0

Dans mon expérience des éléments de contrôle sont toujours mis à jour automatiquement. Mais vous pouvez essayer Control.Refresh();

+0

Merci pour votre réponse. J'ai essayé this.txtBundlesInPalletizer.refresh(). Malheureusement sans succès. Terje – Terje

+0

Merci pour votre réponse. J'ai essayé this.txtBundlesInPalletizer.Refresh() et this.txtBundlesInPalletizer.Update(). Malheureusement sans succès. Terje – Terje

Questions connexes