[C#] サブフォームをメインフォームの中央に表示する

このページのタグ:[C#] [フォーム]
サブフォームをメインフォームの中央に表示する方法を紹介します。

モーダルフォームの場合 - ShowDialogメソッドを用いる場合

モーダルフォームの場合は、"StartPosition"プロパティを"CenterParent"に設定しShowDialogメソッドでオーナーを親フォームに設定するとメインフォームの中央に表示できます。

UI

メインフォームとサブフォームを1つ作成します。メインフォームにはボタンを配置します。

サブフォームの"StartPosition"プロパティを"CenterParent"に設定します。


コード

下記コードを記述します。(ButtonのClickイベントを実装します。)

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

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

    private void button1_Click(object sender, EventArgs e)
    {
      FormSub1 fs1 = new FormSub1();
      fs1.ShowDialog(this);
    }
  }
}

実行結果

アプリケーションを実行します。メインフォームが表示されますのでボタンをクリックします。


サブフォームがメインフォームの中央に表示されます。


モーダルフォームでない場合 - Showメソッドを用いる場合

UI

メインフォームとサブフォームを1つ作成します。メインフォームにはボタンを配置します。

サブフォームの"StartPosition"プロパティを"Manual"に設定します。


コード

下記コードを記述します。(ButtonのClickイベントを実装します。)

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

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

    private void button1_Click(object sender, EventArgs e)
    {
      FormSub1 fs1 = new FormSub1();
      fs1.Left = this.Left + (this.Width - fs1.Width)/2;
      fs1.Top = this.Top + (this.Height - fs1.Height)/2;
      fs1.Show();
    }
  }
}

実行結果

アプリケーションを実行します。メインフォームが表示されますのでボタンをクリックします。


サブフォームがメインフォームの中央に表示されます。


プライバシー    iPentecについて
iPentec all rights reserverd. (ISDC)