前回に引き続き今回もWindowsフォームアプリについての内容となります
例えば、別のプログラムを起動したときなどに知らせるためにダイアログを出しますが、それをわざわざ閉じるのが億劫でした
そこで、今回は自動で閉じるダイアログの実装についてです
名称 | バージョン |
---|---|
C# | .Net 8.0 |
実装する
内容はそんなに難しくありません、まずはコードに起こします
public partial class AutoClosingMessageBox : Form
{
public AutoClosingMessageBox(string message, int timeout)
{
InitializeComponent();
this.Text = "Message";
this.Size = new System.Drawing.Size(300, 150);
this.StartPosition = FormStartPosition.CenterScreen;
messageLabel = new Label();
messageLabel.Text = message;
messageLabel.Dock = DockStyle.Fill;
messageLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.Controls.Add(messageLabel);
timer1 = new System.Windows.Forms.Timer();
timer1.Interval = timeout;
timer1.Tick += Timer_Tick;
timer1.Start();
}
private void Timer_Tick(object sender, EventArgs e)
{
timer1.Stop();
this.Close();
}
public static void Show(string message, int timeout)
{
AutoClosingMessageBox messageBox = new AutoClosingMessageBox(message, timeout);
messageBox.ShowDialog();
}
private void AutoClosingMessageBox_Load(object sender, EventArgs e)
{
}
}
新たなフォームを作成し、そこにtimerとlabelを追加しておきます
内容としては当フォームが生成されたらtimerが起動し、引数で受けっとたミリ秒後、Timer_Tickイベントが呼び出されその中に記載されているように当フォームを閉じています
呼び出す
では、実際に上記の自動で閉じるダイアログを呼び出すには以下のようにします
これで自動で閉じるフォームの作成は完了となります
int sleepTime = 3000; // 3秒後に自動で閉じる
AutoClosingMessageBox.Show($"プログラムを起動します", sleepTime);
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
-
アドバンスド・ソリューション株式会社(ADS)
Microsoft 365/SharePoint/Power Platform/Azure による DX コンサル・シス ...
サイトへ移動