Bueno, estoy escribiendo un archivo de extensiones/método útil para cadenas, etiquetas, etiquetas de enlace, clase, etc.cómo usar el método Invoke en un archivo de extensiones/métodos?
pero, tengo un problema. Tengo un método showMessage()
que cambia el texto de la etiqueta, funciona bien. Pero decido hacer que trabaja con la ejecución del hilo, a continuación, hago esto:
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;
}
}
}
}
siento, fue un error tipográfico. Escribí este código en el foro. el error continúa.
según la documentation, utilizar el método Invoke necesidad de importaciones:
Espacio de nombres: System.Windows.Forms
Asamblea: System.Windows.Forms (en System.Windows.Forms .dll)
luego hice:
using System.Windows.Forms;
pero esto devuelve el mismo error:
The name 'Invoke' does not exist in the current context
cómo lo soluciono?
Gracias de antemano.
Puede usar el delegado 'Action' existente; no es necesario que crees el tuyo. – SLaks
Tal vez, '(label.TopLevelControl as Form) .Invoke' – Joe
@SLaks: Thanks :) –