
ZedGraphで複数のグラフを扱うには、ZedGraphControlクラスのMasterPaneプロパティを使用します。ところでZedGraphControlクラスのグラフ表示部へはGraphPaneプロパティからアクセスできますが、これはMasterPaneの最初のオブジェクトへの参照であり、次の3つのコードは同一のオブジェクトを参照します。
this.zedGraphControl.GraphPane;
this.zedGraphControl.MasterPane[ 0 ];
this.zedGraphControl.MasterPane.PaneList[ 0 ];
ZedGraphControlのGraphPaneのリスト (MasterPane) に新しいGraphPaneを追加します。それにはMasterPaneクラスのAdd()メソッドを使用します。
public void Add( GraphPane pane )
なおZedGraphControlオブジェクトを作成した時点で、1つのGraphPaneオブジェクトが作成されています。もしすべてのグラフを自身で作成したいならば、最初にGraphPaneのリストを消去します。
this.zedGraphControl.MasterPane.PaneList.Clear();
// ZedGraphControlから MasterPaneを取得する MasterPane masterPane = this.zedGraphControl.MasterPane; // 新規にGraphPaneを作成する GraphPane graphPane = new GraphPane(); // それをMasterPaneに追加する masterPane.Add( graphPane );

実行結果
GraphPaneを追加しただけでは全体のレイアウトの計算が行われないため、上記のようには表示されません。そのときにはフォームのサイズを変更すると修正されます。もしくは後述のように明示的にレイアウトを調整します。
public void SetLayout(
Graphics g, // グラフィックデバイス オブジェクト
PaneLayout paneLayout // 配置方法を記述した PaneLayout
)
| 列挙子 | 説明 | 配置イメージ |
|---|---|---|
| ForceSquare | 正方形のグリッドに配置する。 | ![]() |
| SquareColPreferred | 基本的に正方形に配置するが、余剰分は列を追加して配置する。 | ![]() |
| SquareRowPreferred | 基本的に正方形に配置するが、余剰分は行を追加して配置する。 | ![]() |
| SingleRow | 1行に配置する。 | ![]() |
| SingleColumn | 1列に配置する。 | ![]() |
| ExplicitCol23 | 1行目に2つ、2行目に3つ配置する。(5つのグラフ専用) | ![]() |
| ExplicitCol32 | 1行目に3つ、2行目に2つ配置する。(5つのグラフ専用) | ![]() |
| ExplicitRow23 | 1列目に2つ、2列目に3つ配置する。(5つのグラフ専用) | ![]() |
| ExplicitRow32 | 1列目に3つ、2列目に2つ配置する。(5つのグラフ専用) | ![]() |
SetLayout()メソッドの第1引数で必要なGraphicsオブジェクトは、ControlのCreateGraphicsなどで取得できます。Control.CreateGraphics メソッド (System.Windows.Forms) | MSDN
using( Graphics graphics = this.CreateGraphics() )
{
this.zedGraphControl.MasterPane.SetLayout( graphics, PaneLayout.ForceSquare );
}
public void SetLayout(
Graphics g, // グラフィックデバイス オブジェクト
bool isColumnSpecified, //
int[] countList, //
float[] proportion //
)