C Sharp バックグラウンドで動く
ナビゲーションに移動
検索に移動
目次
C# バックグラウンドで動く
C Sharp | Visual Studio | C Sharp タスクトレイ |
起動後、画面を指定時間経過後に非表示にしてタスクトレイに常駐させる
画面のデザイン
- NotifyIcon と ContextMenuStrip を使って、[C# タスクトレイ] [タスクトレイ]アプリケーションを作成する。
コーディング
Progma.cs
- Application.Run に Form ではなく、ApplicationContext のインスタンスを渡すように修正
using System;
using System.Windows.Forms;
namespace MyApp
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
// Form ではなく、ApplicationContext のインスタンスを渡すように修正
Application.Run(new MyAppContext());
}
}
}
ApplicationContext を派生させてクラスを作成
- System.Windows.Forms.ApplicationContext
using System;
using System.Windows.Forms;
namespace MyApp
{
class MyAppContext : ApplicationContext
{
public MyAppContext()
{
LauncherForm launcherForm = new LauncherForm();
// 起動する画面のCloseイベントをこのクラスのOnLauncherFormClosedでハンドリングする
launcherForm.FormClosed += new FormClosedEventHandler(this.OnLauncherFormClosed);
launcherForm.Show();
// 画面表示させて1秒待機
System.Threading.Thread.Sleep(1000);
// 画面を非表示に
launcherForm.Hide();
}
private void OnLauncherFormClosed(object sender, EventArgs e)
{
// アプリケーションの終了
ExitThread();
}
}
}
Form を作成
using System;
using System.Windows.Forms;
namespace MyApp
{
public partial class LauncherForm : Form
{
public LauncherForm()
{
InitializeComponent();
}
private void toolStripMenuItemExit_Click(object sender, EventArgs e)
{
// コンテキストメニューの終了メニューで、フォームを閉じる
this.Close();
}
}
}
© 2006 矢木浩人
