I need to call “panel.invalidate” outside my form (WINform) class also I need to change some other controls as well, I read similar question here, and tried what they said, but it didn’t work and I wasn’t convinced at all.
The answer I read was about exposing a public method like this:
public void EnableButton(bool enable)
{
this.myButton.Enabled = enable;
}
Also I made a static instance in the other file
static Form1 myForm = new Form1();
Any useful suggestions??
The problem is the “myForm” reference. It is a reference to an instance of Form1 that isn’t visible and doesn’t match the one that the user is looking at. It can’t be a match, you created a new one.
Whatever class needs to update the form must have a constructor that takes a Form1 reference. You can create the class object in your Form1 constructor or Load event, pass “this”. Using Application.OpenForms[0] is another way to get the reference, one you should not use.