開いているウィンドウを判別するには、Form.ActiveMDIChildプロパティを照会して、現在アクティブなウィンドウへの参照を取得します。そこから、次の2つのいずれかを実行できます。
1)新しいパブリックメンバー関数GetCopiedData()を持つ独自のカスタムFormクラス(たとえばFormFoo)を作成し、そのクラスからアプリケーションのすべての子フォームを継承する場合は、次のようにすることができます。
((FormFoo)this.ActiveMDIChild).GetCopiedData();
GetCopiedData関数には、クリップボードにコピーする必要のあるテキストを検出するためのフォーム固有の実装があると想定しています。
また
2)継承を使用して、アクティブなフォームのタイプを検出し、フォームのタイプに応じてコピーされたデータを取得するために何かを行うことができます。
Form f = this.ActiveMDIChild;
if(f is FormGrid)
{
((FormGrid)f).GetGridCopiedData();
} else if(f is FormText) {
((FormText)f).GetTextCopiedData();
}
等
これで、アクティブなウィンドウの検索とコピー機能の実装方法を開始できます。GridViewからのコピーについてさらにサポートが必要な場合は、別の質問を投稿することをお勧めします。