スポンサーリンク

【C#】タスク常駐アプリのコンテキストメニューにボタンを追加する方法ご紹介。

C#
スポンサーリンク

今回の記事はC#でタスク常駐アプリのコンテキストメニューにボタンアクションを追加する方法に関しての記事です。初心者にも分かりやすいように記載していくので是非参考にしてみてください。

他にもコンテキストメニューからファイルダイアログを操作する方法に関しても記載しているので気になる方は下記記事も参考にしてみてください。

【C#】タスク常駐アプリでファイルダイアログを表示する方法。

スポンサーリンク

C#でタスク常駐アプリの作成

タスク常駐アプリとは下記画像のようなWindows独特のアプリです。

VisualStudioでフォームアプリを作成します。

[Visual c#]の中にある[Windows フォームアプリケーション(.NET Framework)]を選択して、[OK]ボタンをクリックすれば作成できます。

このままビルドすると画面が現れてしまうので下記のように「Program.cs」を修正します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test
{
    static class Program
    {
        /// <summary>
        ///  The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.SetHighDpiMode(HighDpiMode.SystemAware);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            //Application.Run(new Form1());
            new Form1();
            Application.Run();
        }
    }
}

これで画面は現れずにビルドすることができます。

では次にフォームの中身(「Form.cs」)を修正していきます。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test
{
    public partial class Form1 : Form
    {
        //icon設定
        NotifyIcon notifyIcon;
        public Form1()
        {
            InitializeComponent();
            // タスクバーに表示しない
            this.ShowInTaskbar = false;
            this.setComponents();
        }
        //タスクバーにセットするもの
        private void setComponents()
        {
            notifyIcon = new NotifyIcon();
            var iconpath = "自身の指定するパス(.bmp形式のファイル32×32サイズ)";
            var bitmap = new Bitmap(iconpath);
            this.notifyIcon = new NotifyIcon()
            {
                Icon = Icon.FromHandle(bitmap.GetHicon()),
                Visible = true,
                Text = "アイコンにマウスポインタを合わせたときのテキスト"
            };
            notifyIcon.BalloonTipTitle = "タイトル";
            notifyIcon.BalloonTipText = "通知内容など";
            notifyIcon.ShowBalloonTip(3000);
            //アイコンクリック時のイベントを追加
            notifyIcon.Click += new EventHandler(NotifyIcon1_Click);
            // アイコンを表示する
            notifyIcon.Visible = true;

        }
        //アイコンクリック時に再表示
        private void NotifyIcon1_Click(object sender, EventArgs e)
        {
            notifyIcon.ShowBalloonTip(3000);
        }
    }
}

アイコンの設定など細かい箇所の説明は下記記事を記載しているのでそちらから参考にしてみてください。

C#でタスク常駐アプリにアイコンを設定する方法ご紹介。

タスク常駐アプリにコンテキストメニュー追加

// コンテキストメニュー(右クリック)
ContextMenuStrip contextMenuStrip = new ContextMenuStrip();

コンテキストメニューにボタン追加

// コンテキストメニュー(右クリック)
ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
ToolStripMenuItem context = new ToolStripMenuItem();
context.Text = "&ファイルダイアログ";
context.Click += ToolStripMenuItem_Click;
contextMenuStrip.Items.Add(context);

//コンテキストメニューをiconに追加
notifyIcon.ContextMenuStrip = contextMenuStrip;

上記をForm.csに追加していきましょう。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Test
{
    public partial class Form1 : Form
    {
        //icon設定
        NotifyIcon notifyIcon;
        public Form1()
        {
            InitializeComponent();
            // タスクバーに表示しない
            this.ShowInTaskbar = false;
            this.setComponents();
        }
        //タスクバーにセットするもの
        private void setComponents()
        {
            notifyIcon = new NotifyIcon();
            var iconpath = "自身の指定するパス(.bmp形式のファイル32×32サイズ)";
            var bitmap = new Bitmap(iconpath);
            this.notifyIcon = new NotifyIcon()
            {
                Icon = Icon.FromHandle(bitmap.GetHicon()),
                Visible = true,
                Text = "アイコンにマウスポインタを合わせたときのテキスト"
            };
            notifyIcon.BalloonTipTitle = "タイトル";
            notifyIcon.BalloonTipText = "通知内容など";
            notifyIcon.ShowBalloonTip(3000);

            // コンテキストメニュー(右クリック)
            ContextMenuStrip contextMenuStrip = new ContextMenuStrip();
            ToolStripMenuItem context = new ToolStripMenuItem();
            context.Text = "&ファイルダイアログ";
            context.Click += ToolStripMenuItem_Click;
            contextMenuStrip.Items.Add(context);

            //コンテキストメニューをiconに追加
            notifyIcon.ContextMenuStrip = contextMenuStrip;

            // アイコンを表示する
            notifyIcon.Visible = true;
        }
    }
}

二つのボタンを追加したい場合は「contextMenuStrip.Items.Add(context);」で他の「ToolStripMenuItem」をどんどん追加していけば複数のボタンを追加できます。

では今回の記事は以上です。他にも多数のC#関連の記事を記載しているので興味があれば是非参考にしてみてください。

本記事を読んでいただき感謝です。サイトを訪れていただいた方はプログラミング勉強中かと思いますのでプログラミング勉強のコツを合わせてご紹介。

スポンサーリンク
スポンサーリンク
スポンサーリンク

ブログに関しては500円程度かかりますが、それ以外は無料です。知識の吸収と並行してアウトプットは非常に効率が良いです。テックアカデミーに関しては講座レベルが高いにも関わらず、無料体験や人気口座も大幅値下げがあるので、重点的に学びたいものを無料体験してみてください。

転職時にも、エンジニアからテックアカデミー・Paizaは認知度が高いので、未経験入社採用を行う際履歴書で目に留まります。特にPaizaのスキルレベルA・SなどはIT業界でも評価されます。

テックアカデミー・Paizaの無料登録ができる期間中にぜひご利用してみてください。私も活用経験ありです。

C#
スポンサーリンク
スポンサーリンク

コメント

タイトルとURLをコピーしました