Ce quetion est dans le prolongement de ma question à this link.
j'ai écrit une demande de comparer l'approche, qui y est utilisé, avec d'autres moyens. Lors de l'exécution de l'application en mode débogage j'ai eu l'erreur "Invoke ou BeginInvoke ne peut pas être appelé sur un contrôle jusqu'à ce que le handle de fenêtre a été créé." sur le premier BeginInvoke dans la méthode UpdateCustDetails. Bien que, il ne donne aucune erreur d'exécution lors de l'exécution du code sans débogage. Des idées??
Merci, Abhi.
Voici mon code: -
public delegate void UpdateLabelDelegate(Label lb, string text);
public delegate void loadCustomersDelegate();
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
loadCustomersDelegate del = new loadCustomersDelegate(UpdateCustDetails);
IAsyncResult ar = del.BeginInvoke(null, null);
while (!ar.IsCompleted)
{
}
}
public void updateLabel(Label lb, string text)
{
lb.Text = text;
}
public void UpdateCustDetails()
{
BeginInvoke(new UpdateLabelDelegate(updateLabel), new object[] { label1, "Test" });
BeginInvoke(new UpdateLabelDelegate(updateLabel), new object[] { label2, "Test1234" });
BeginInvoke(new UpdateLabelDelegate(updateLabel), new object[] { label3, "Test5678" });
BeginInvoke(new UpdateLabelDelegate(updateLabel), new object[] { label4, "Test0000" });
}
}
@ 366436 abhi où habitez-vous en Inde –
Salut Steven, je suis d'origine indienne, mais je suis basé au Royaume-Uni actuellement. –
Essayez de déplacer le code du constructeur Form1 vers onload-event du formulaire. (Sauf provoquer l'appel InitializeComponents). – Alxandr