You can use the delegate, but more correctly are using interfaces.
For example:
public interface IMessenger
{
void ShowMessage(string text);
}
And inherit maybe main form, or maybe other classes from this interface.
In the appropriate classes/forms make for example a property 'Messenger', set it and use. This way is more flexible than delegates.