[C#] フォームを子フォーム(サブフォーム) として表示する
このページのタグ:[C#]
フォームを子フォーム(サブフォーム) として表示するコードを紹介します。

プログラム

UI

下図のUIを作成します。

FormMain


FormSub


コード

下記のコードを記述します。

FormMain.cs


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormSubForm
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      FormSub fs = new FormSub();
      fs.Show(this);
    }
  }
}

実行結果

上記のプロジェクトを実行します。下図のウィンドウが表示されます。


[button1]をクリックします。サブウィンドウが表示されます。(下図)


[button1]をクリックするごとにサブフォームが表示されます。


サブフォームどうしではフォームをクリックするとそのフォームが最前面に表示されます。


フォームがサブフォームの場合、オーナーとなる親フォームをクリックしてもサブフォームより前面には表示されません。常にサブフォームが親フォームの前面に表示されます。


タスクバーには、メインフォームとサブフォームが表示されます。タスクバーから非表示にする場合はこちらの記事を参照してください。~

参考:オーナーを設定しない場合の動作

下記のコードでプロジェクトを実行すると、[button1]のクリック時に表示されるフォームにはオーナーが設定されないため、サブフォームではなくなります。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace FormSubForm
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      FormSub fs = new FormSub();
      fs.Show();
    }
  }
}

プロジェクトを実行すると下図のフォームが表示されます。


[button1]をクリックすると、新しいフォームが表示されます。


[button1]をクリックするごとにフォームが表示されます。


サブフォームをクリックするとそのフォームが最前面に表示されます。


メインフォームをクリックしてアクティブにすると、最前面に表示されます。先ほどのサブフォームの場合と動作が異なります。


タスクバーには、メインフォームとサブフォームが表示されます。

登録日 :2016-08-17    最終更新日 :2016-08-18
このページのタグ:[C#]
Japanese
プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)