Bene, sto scrivendo un file di estensioni/metodo utile per stringhe, etichette, linklabels, classe ecc.come utilizzare il metodo Invoke in un file di estensioni/metodi?
ma, ho un problema. Ho un metodo showMessage()
che cambia il testo dell'etichetta, funziona perfettamente. Ma decido di fare che funziona con l'esecuzione filo, allora faccio questo:
namespace LabelExtensions
{
public static class LabelExtensionsClass
{
private delegate void UpdateState();
public static void ShowMessage(this Label label, string text)
{
if (label.InvokeRequired)
{
label.Invoke((UpdateState)delegate
{
label.Text = text;
});
}
else
{
label.Text = text;
}
}
}
}
dispiace, è stato un errore di battitura. Ho digitato questo codice sul forum. l'errore continua.
secondo il documentation, di utilizzare il metodo Invoke necessità alle importazioni:
Namespace: System.Windows.Forms
Assemblea: System.Windows.Forms (in System.Windows.Forms .dll)
poi ho fatto:
using System.Windows.Forms;
ma restituisce lo stesso errore:
The name 'Invoke' does not exist in the current context
come risolvere questo problema?
Grazie in anticipo.
È possibile utilizzare il delegato 'Azione' esistente; non è necessario crearne di propri. – SLaks
Forse, '(label.TopLevelControl as Form) .Invoke' – Joe
@SLaks: Grazie :) –