株式会社シベスピ 従業員ブログ

シベスピの社員ブログ。技術・想い・経験沢山書いていきます!

【C#】お断りしますウィルス【Windowsフォームアプリケーション入門】

C#】お断りしますウィルス【Windowsフォームアプリケーション入門】












「おもてなし」ならぬ「お断り」の気持ちを表すのにピッタリなプログラムを今回は作成しましょう。

概要

今回登場するのは「ダイアログ」と


「ウィンドウ」の


二種類になります。

まずはウィンドウの作成からやりましょう。


・お断りしますウィンドウの作成

おなじみプロジェクト作成後の画面になります。


ツールボックス」から「Label」を選択してフォームに貼り付けます。


プロパティウィンドウの「Text」にお断りしますのAAを入力します。
左側の「Text」を選択すると右側にこんな(▼)のが表示されるので、
選択してその中に入力します。


フォントの調整をします。
プロパティウィンドウの「Font」を選択し、右側の[...]を選択します。


フォントダイアログが表示されるので、サイズを18ぐらいにし、OKを選択します。


AAが丁度よい感じになるので、ウィンドウの縦幅を小さくし、調整します。


タイトルバーの「Form1」を「お断りします」に変更しましょう。
フォームを選択し、プロパティウィンドウの「Text」に「お断りします」と入力します。


タイトルバーの最小化アイコンと最大化アイコンを無効化します。
プロパティウィンドウの「MaximizeBox」と「MinimizeBox」を「False」に設定します。


フォームのリサイズを禁止するためにプロパティウィンドウの「FormBorderStyle」を「FixedSingle」に変更します。


実行すると下のようなウィンドウが表示されます。


しかしこれでは×ボタンを押した時に閉じてしまいますので、×ボタンが押されても閉じず、更に同じウィンドウを追加で表示するようにしましょう。


・ウィンドウを閉じないよう&更にウィンドウを表示する

プロパティウィンドウのイベントアイコン(雷のアイコン)を選択します。


イベント一覧が表示されます。
ここは選択したコントロール(ボタンやフォームなど)のイベントが表示されます。
「FormClosing」をダブルクリックします。


コードエディタに移動しますので、次のように入力します。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
}

これで実行すると、×ボタンを押してもウィンドウが閉じなくなります。
終了するにはexeをタスクマネージャから終了するか、デバッグを停止してください。


メソッドにウィンドウを追加で表示する処理を記述します。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    e.Cancel = true;
    new Form1().ShowDialog();
}

これで実行すると、×ボタンを押すたびに新しいウィンドウが表示されます。


ウィンドウは一定数表示すると表示数上限に達して例外が発生するので無視しましょう。

・ダイアログを表示する

こいつ↓を作ります。


ソリューションエクスプローラーで「Program.cs」を選択します。

これはexeを起動した際に一番最初に読み込まれるプログラムです。
19行目のフォームの生成処理で初めて先程のウィンドウが表示されます。


以下のような処理を記述します。

static void Main()
{
    string text = "  ハ,,ハ" + Environment.NewLine +
                  "( ゚ω゚)" + "      お断りしますが、よろしいですか?";

    MessageBox.Show(text, "Windows", MessageBoxButtons.YesNoCancel);
    
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new Form1());
}

通常はダイアログで選択されたボタンによって処理を変更しますが、今回の場合どのボタンを選択しても問答無用でお断りしていくので特にその処理は記述しません。


さて実行すると次のようなダイアログが表示されます。


いずれかのボタンを選択すると先程のウィンドウが表示されます。


消すと増えます。

・おわり

お疲れ様でした。
今回の内容を活用すると、×ボタンでウィンドウ閉じるときにダイアログを表示し閉じるかどうか確認、のようなフォームアプリケーションにはよくある機能が実現できます。


さて次回も昔なつかしのものを題材にしていきます。