スポンサーリンク

【C#】タスク常駐アプリでファイルダイアログを使用する方法ご紹介。

C#
スポンサーリンク

今回の記事はC#を使ってタスク常駐アプリを作る中でファイルダイアログを表示する方法に関しての記事です。初心者にも分かりやすいように記載していくので是非参考にしてみてください。

スポンサーリンク

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

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#でタスク常駐アプリにアイコンを設定する方法ご紹介。

C#でファイルダイアログを表示

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.IO.Compression;
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();

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

            ToolStripMenuItem logdownload = new ToolStripMenuItem();
            logdownload.Text = "&ファイルダイアログ";
            logdownload.Click += ToolStripMenuItem_Click;
            contextMenuStrip.Items.Add(logdownload);

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

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

        // ログダウンロード
        private void ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
            // ダイアログの説明文
            folderBrowserDialog.Description = "フォルダを選択してください。";
            // デフォルトのフォルダ
            folderBrowserDialog.SelectedPath = @"C:";
            // 「新しいフォルダーの作成する」ボタンを表示する(デフォルトはtrue)
            folderBrowserDialog.ShowNewFolderButton = true;
            //フォルダを選択するダイアログを表示する
            if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
            {
                string savefolder = folderBrowserDialog.SelectedPath;
                Console.WriteLine(savefolder);
            }
            else
            {
                Console.WriteLine("キャンセルされました。");
            }
            // オブジェクトを破棄する
            folderBrowserDialog.Dispose();
        }
    }
}

簡単に説明をしていきます。まずコンテキストメニューにボタンを追加していくのでコンテキストメニューを定義します。そこにボタンを追加し、iconに設定します。それが下記の部分です。

            notifyIcon = new NotifyIcon();

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

            ToolStripMenuItem logdownload = new ToolStripMenuItem();
            logdownload.Text = "&ファイルダイアログ";
            logdownload.Click += ToolStripMenuItem_Click;
            contextMenuStrip.Items.Add(logdownload);

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

ボタンの機能はクリックイベントハンドラーに「+=」でついかして関数内でファイルダイアログ処理を行い、ファイルダイアログを表示しております。

では今回の記事は以上です。他にも多数のC#関連の記事を記載しているので是非そちらも参考にしてみてください。

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

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

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

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

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

C#
スポンサーリンク
スポンサーリンク
ともぶろぐ

コメント

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

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