C# - よく使うクラス - System.Windows.Forms - Form
- 1. 概要
- 2. 閉じる
- 3. サイズの変更を禁止する
- 4. 移動禁止
1. 概要
本来、本章の冒頭にこれを持ってくるべきなのかもしれません。
参考サイトには、「アプリケーションのユーザー インターフェイスを構成するウィンドウまたはダイアログ ボックスを表します。」と書かれています。
本ページは、下記のサイトを参考にさせていただきました。
「フォームのサイズを変更できないようにする」
「フォームを移動できないようにする」
「フォームの移動を拒否する。移動できないフォームを作成する」
「Form クラス (System.Windows.Forms) 」
「C# でフォーム閉じる方法とは?戻り値の取得方法をご紹介!」(2024年10月3日、リンク切れになりました)
新規プロジェクトで、「Windows」フォームアプリケーションを作成すると、この派生として
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
}
ちゅうのが、まず、自動で作成されますな。
2. 閉じる
適当な、ボタンを配置して、ボタンのクリックイベントで、このフォームを閉じるには、「Close」メソッドを使用します。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
これで、該当のボタンをクリックすると、ウィンドウが閉じるようになります。
3. サイズの変更を禁止する
デフォルトの状態で、作成したフォームは、フォームの端へカーソルを持っていくと。
サイズ変更の矢印が表示されて、矢印をドラッグするとフォームのサイズを変更することができます。
(キャプチャしようとしましたが、Print キーでキャプチャしても、矢印がキャプチャされません)
これを、無効化するには、フォームのコンストラクタか「Load」メソッドで、下記の行を追加します。
FormBorderStyle = FormBorderStyle.FixedSingle;
4. 移動禁止
フォームのタイトル部分をドラッグすると、フォームを移動することができますが。
これを禁止するには、フォームのクラス内に下記の「WndProc」というメソッドを挿入します。
namespace hogehoge
{
public partial class Form1 : Form
{
・・・ 略 ・・・
protected override void WndProc(ref Message m)
{
const int WM_SYSCOMMAND = 0x0112;
const long SC_MOVE = 0xF010L;
if (m.Msg == WM_SYSCOMMAND && (m.WParam.ToInt64() & 0xFFF0L) == SC_MOVE)
{
m.Result = IntPtr.Zero;
return;
}
base.WndProc(ref m);
}
・・・ 略 ・・・
}
}
これは、フォームをドラッグしたり、移動するイベントをキャッチして無効化しているものです。
上記は、「Microsoft Visual Studio Community 2022 Version 17.13.0」「C# .NET 8」で試験しました。
|
|