# ビューコントロールの画面切り替え

トレーニング > 応用編 > 画面開発の基本 > 画面切り替え処理 > # ビューコントロールの画面切り替え |

画面切り替え処理の実装（ビューコントロールの切り替え）

「プロジェクトの新規作成」で作成した各フォームでは、以下の関係になっています。
メインエリアには、「frmMain」フォームが表示され、「frmMain」フォームに配置されたビューコントロールの表示フォームをボタンクリックのスクリプトで切り替えています。ここで、スクリプトの記述を確認してみます。

ワークスペースビューで「frmMain」フォームを選択し、「画面1」のボタンを選択して下さい。このボタンに記述されているスクリプトを確認する為、「スクリプト」タブをクリックします。
スクリプトエディタでスクリプトが確認できます。

ここでの記述についてを解説します。「parent」とは、親オブジェクトのことを指します。この場合の「parent」とは、ボタンオブジェクトの親オブジェクトであるフォームを指します。parent.viewMain.OpenFormといった記述は、親オブジェクト（この場合はフォーム）に貼り付けられたviewMainという名前のビューオブジェクトのOpenFormメソッドを呼び出す、という意味になります。スクリプトは全てのオブジェクトに記述する事ができます。その為、記述するオブジェクトから別のオブジェクトを参照/呼び出しを行う場合は、相対的に記述する必要があります。

| オブジェクト同士の親子関係は階層構造になっています。詳しくは「オブジェクトの階層構造と参照」を参照下さい。

また、viewMain(ビューオブジェクト)のOpenFormとは、ビューコントロールがあらかじめ持っているメソッドになります。メソッドの詳細は「OpenForm」を参照して下さい。
ビューコントロールのOpenFormの概略は

OpenForm(「ビューに表示するフォーム名」, 「表示後のフォームを識別する為の任意の名前」)

です。

OpenFormのパラメータとして第1パラメータに「this.Comment」を指定していますが、「this.Comment」で指定されたフォーム名のフォームがビューオブジェクトに表示されます。「this.Comment」の、「this」とはボタンオブジェクト自身を指し「this.Comment」とは、ボタンオブジェクトのCommentプロパティを意味します。つまり、ボタンオブジェクトのCommentプロパティに設定した値のフォーム名をビューオブジェクトに表示する書式になります。

ここで、ボタンオブジェクトのCommentプロパティを見てみると
「Screen01」が設定されています。
また、第2パラメータには「this.Comment + "_frm"」を指定しています。第2パラメータの仕様では、ビューオブジェクトに表示したフォームオブジェクトについて、スクリプトなどから参照する為の任意の名称を指定する事になっています。ここでは、Commentプロパティに指定するフォーム名と"_frm"という文字列を連結させて指定しています。

ここでのスクリプトの処理をまとめると

ボタンオブジェクトでマウスが上がったときに、ビューオブジェクトの「OpenForm」メソッドを呼びます。OpenFormで開くフォームはボタンオブジェクトのCommentプロパティで指定されたフォームを開きます。

となります。

| OpenFormの第1パラメータでCommentプロパティを渡していますが、直接フォーム名を記述しても同様の動作となります。但し、上記の様なスクリプトにしておくと、スクリプトを記述したボタンオブジェクトを一つ作成すると同様の処理を行うボタンを追加する際、Commentプロパティの値だけ変更すればスクリプトは変更しなくても別の画面表示ボタンが実装できます。