「通知」…もし表示済みのフォームをあとからいじりたい場合、

public static class static1 {
 public static form1 form1; //スタティッククラスのフィールドを用意して、
-------------------------------------
public partial class form1 : Form {
public form1() {
 static1.form1 = this; //各自のインスタンスを各自のコンストラクタで設定しておく
-------------------------------------
public partial class CounterForm : Form {
public void hoge() {
try {
 Exception er = null;
 this.Invoke( (MethodInvoker)delegate { //デリゲートせずに外からフォームをいじるとエラーになることがある
  try {
   static1.form1.DoSomething(); //スタティッククラスのフィールドを経由すると表示済のものがいじれる
  } catch( Exception e ) { er = e; } //ちなみにデリゲート内のエラーは外側でキャッチできないので、
 } );
 if( er != null ) { throw er; } //変数を経由して外側でスローする