メインフォームがアイコン化されるとサブフォームもアイコン化される方法を紹介します。
メインフォームがアイコン化されると、サブフォームもアイコン化される動作を実現するには、メインフォームがサブフォームを所有するアプリケーションを作成する必要があります。サブフォームがメインフォームに所有されるには、サブフォームのOwnerプロパティにメインフォームを代入することでサブフォームがメインフォームに所有されることになります。
以下のUIを用意します。
メインフォームのコードに下記を記述します。
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 MultiFormOwnedApp
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FormSub1 fs1 = new FormSub1();
FormSub2 fs2 = new FormSub2();
FormSub3 fs3 = new FormSub3();
fs1.Show();
fs2.Show();
fs3.Show();
}
}
}
アプリケーションを実行しメインフォームのボタンを押すとサブフォームが表示されます。
サブフォーム表示後メインフォームを最小化しても、サブフォームは最小化されずデスクトップに表示され続けます。
UIは先のプログラムのUIと同じものを利用します。
メインフォームのコードに下記を記述します。
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 MultiFormOwnedApp
{
public partial class FormMain : Form
{
public FormMain()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
FormSub1 fs1 = new FormSub1();
FormSub2 fs2 = new FormSub2();
FormSub3 fs3 = new FormSub3();
fs1.Owner = this;
fs2.Owner = this;
fs3.Owner = this;
fs1.Show();
fs2.Show();
fs3.Show();
}
}
}
fs1.Owner = this;
fs2.Owner = this;
fs3.Owner = this;
を記述し、サブフォームがメインフォームに所有されるよう設定します。
アプリケーションを実行し、メインフォームのボタンを押しサブフォームを表示したのち、メインフォームを最小化するとサブフォームも最小化されます。