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」で試験しました。
earthcar(アースカー)