Cóż, piszę plik rozszerzeń/metody użyteczny dla łańcuchów, etykiet, linków, klas itp.jak korzystać z metody Invoke w pliku rozszerzeń/metod?
ale mam problem. Mam metodę showMessage()
, która zmienia tekst etykiety, działa poprawnie. Ale ja decyduję zrobić współpracuje z wykonania gwintu, a następnie zrobić to:
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;
}
}
}
}
przykro, to była literówka. Napisałem ten kod na forum. błąd jest kontynuowany.
zgodnie z documentation, aby użyć metody konieczność importu Invoke:
Przestrzeń nazw: System.Windows.Forms
Montaż: System.Windows.Forms (w System.Windows.Forms .dll)
następnie zrobiłem:
using System.Windows.Forms;
, ale to zwraca ten sam błąd:
The name 'Invoke' does not exist in the current context
jak to naprawić?
Z góry dziękuję.
Możesz użyć istniejącego delegata "Działanie"; nie musisz tworzyć własnego. – SLaks
Może, '(label.TopLevelControl as Form) .Invoke' – Joe
@SLaks: Thanks :) –