アプリの教科書

アプリ・ウィンドウズで困ったことを調べたブログ

ウィンドウズ10やアプリで困ったことを調べたブログです。

スポンサーリンク


【Visual Studio】C#でフォームの使い方 フル画面?半透明?バーを消す?

C#でフォームアプリケーションを作る場合、フォームのいろんな設定について知っておくとハンドリングが楽です。

例えばウィンドウをなしにしたり、常時上においたりなど。ここではフォームの設定とその機能について紹介します。

フォームのプロパティ

タイトルバー

ConrolBoxをFalseにするとアイコンが出ません。

また最大化最小化ボタンを利用不可にするにはMinimizeBoxやMaxmizeBoxをfalseにします。

f:id:apicode:20200714145813p:plain

 

 

ウィンドウ

常時上のウィンドウを作る

TopMostをTrueにすると、他のウィンドウに隠れることはなくなります。

 

透明ウィンドウを作る

Opacityを変更すると透明のウィンドウになります。

50%だとだいぶ薄いです。

f:id:apicode:20200714145954p:plain

 

起動時にフル画面にする

起動時に最大化させるのが一番簡単だと思います。

WindowStateをMaximizedにセットします。

f:id:apicode:20200714151306p:plain

 

バーもなしで最大化させるには「FormboderStyle」を「None」にしておきます。

 

イベント

キー入力をオフ

KeyPreviewを「False」にすると、Form自体はキーを取得しません。

 

 

フォームのイベント

起動時のイベント

フォーム作成時はLoad、Activated、Shownといったイベントが起きます。

Loadはフォーム作成時のイベントで、変数の初期化などフォーム開始時に必要な設定を行うのにぴったりなタイミングです。

Activatedはフォームがアクティベート(オン)になったタイミング、Shownは表示されたタイミングですので、フォームのオンオフやアクティブになるならないのタイミングで必要な処理を書きましょう。

  • Form.Load
  • Form.Activated
  • Form.Shown

 

終了時のイベント

アプリケーションを閉じると、フォームで次のイベントが次の順序で発生します。

  • Form.Closing
  • Form.FormClosing
  • Form.Closed
  • Form.FormClosed
  • Form.Deactivate

参考:イベントの順序 - Windows Forms | Microsoft Docs

 

 

別のフォームを表示

別フォームを開く

別のフォームを用意して、別ウィンドウ、あるいはモーダルダイアログのように表示できます。

表示させるには、

Form2 form2 = new Form2();
form2.Show(this);

のようにフォームオブジェクトを作ってShowします。

ダイアログのようにモーダル表示させるには以下のように

Form2 form2 = new Form2();
form2.ShowDialog(this);

 とします。モーダルのほうが、操作を完了するまでは他のウィンドウの操作を行わせない場合に有効です。

 

別フォームを閉じる

ボタンを押して閉じるだけなら「Close」メソッドを呼び出せば閉じることができます。

 private void button2_Click(object sender, EventArgs e)
{
this.Close();
}

 

元のフォームの変数を引き継ぐ

設定用のダイアログを開く場合、元のフォームが保持している変数へアクセスしたいこともあるでしょう。

 

変数をセットしてから開く

先にForm2のほうへPublicな変数を用意しておきます。

public int iNum;

 

後は変数に値をセットしてからウィンドウをひらきます。

Form2 form2 = new Form2();
form2.iNum = 10;

form2.ShowDialog(this);

 

 

controlの値をセットしてから開く

対処方法の1つは開くフォームのコントロールの設定へ直接アクセスすることです。

 

以下は開くForm2にあるNumericUpDownコントロールの値を直接指定する場合です。

 

まずは設定を変更するコントロールの「Modifiers」を「Public」にします。これで違うフォームからもアクセス可能となります。

f:id:apicode:20210223184901p:plain

 

後は、呼び出すときに変数をセットしてからダイアログをオープンします。

private void configToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.numericUpDown1.Value = 10;
form2.ShowDialog(this);
}

 

「Properties.Settings」を使う

Visual Studioには簡単に値を保存・取得できる「Properties.Settings」という項目があります。

 

これならどのフォームからでもアクセスできるので、そちらへ値をセットします。

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

利用規約・プライバシーポリシー |〇問い合わせ