Ahoj,
jestli jsem to pochopil, tak máš minimálně dvě třídy, jedna pro Form a druhá MyClass, kde máš metodu s try-catch blokem.
Zkrátka potřebuješ mít k dispozici referenci na Form ve třídě MyClass. Tak si prostě rozšiř kontruktor u MyClass o položku Form a ulož si referenci třeba do property. Pak v block catch zavoláš MyClass a specifickou metodu, která přenastaví barvu.
Pokud to chceš mít čistější, tak si udělej interface IForm, kde budeš mít nadefinovaný předpis metody, která mění barvičky na tlačítku a do konstruktoru MyClass nebudeš vkládat Form, ale IForm.
public interface IForm
{
void ChangeButtonColor(Color color);
}
public class Form : IForm
{
public void ChangeButtonColor(Color color)
{
// implementace
}
}
public class MyClass
{
public IForm Form { get; set; }
public MyClass(IForm form)
{
Form = form;
}
public void DoWork()
{
try
{
// do something
}
catch (Exception)
{
Form.ChangeButtonColor(Colors.Red);
}
}
}
Pojmenování samozřejmě přiohni pro svoje potřeby, stejně tak předpis funkce pro změnu barvy.
Samozřejmě nezapomeň při inicializaci třídy MyClass předat referenci formu. Nevím, kde to inicializuješ, ale jestli přímo ve Formu, tak stačí něco takového:
MyClass class = new MyClass(this);
Evžen