タスクトレイのみで常駐するWindowsFormアプリケーションです。
RContrlキーを押したらマウスポインターの位置にContextMenuStripが表示されるプログラムを作っています。その時にContextMenuStrip自身のタスクバーも表示されてしまいます。
そのタスクバー表示を非表示にする方法を教えて頂きたいです。
C# Visual Studio Community 2017 v15.7.0
.NET v4.7.03056
Windows10 Home
Program.cs
C#
1using System; 2using System.Windows.Forms; 3 4namespace MinimizeList 5{ 6 static class Program 7 { 8 public static Form1 form = new Form1(); 9 10 static void Khooked(object sender, KeyboardHookedEventArgs e) 11 { 12 if (e.UpDown == KeyboardUpDown.Down) 13 { 14 if (e.KeyCode == Keys.RControlKey) 15 { 16 OpenMenu(); 17 } 18 } 19 } 20 21 public static void OpenMenu() 22 { 23 form.contextMenuStrip1.Items.Clear(); 24 form.contextMenuStrip1.Items.Add("キャンセル"); 25 form.contextMenuStrip1.Show(Cursor.Position, ToolStripDropDownDirection.BelowRight); 26 form.contextMenuStrip1.ShowImageMargin = false; 27 28 } 29 30 [STAThread] 31 static void Main() 32 { 33 KeyboardHook Khook = new KeyboardHook(); 34 Khook.KeyboardHooked += new KeyboardHookedEventHandler(Khooked); 35 Application.Run(form); 36 } 37 } 38}
Form1.cs
C#
1using System; 2using System.ComponentModel; 3using System.Windows.Forms; 4 5namespace MinimizeList 6{ 7 public partial class Form1 : Form 8 { 9 public Form1() 10 { 11 InitializeComponent(); 12 } 13 14 private void Form1_Load(object sender, EventArgs e) 15 { 16 this.ShowInTaskbar = false; 17 this.Hide(); 18 } 19 20 private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) 21 { 22 23 } 24 25 private void contextMenuStrip1_Opening(object sender, CancelEventArgs e) 26 { 27 28 } 29 } 30}
KeyboardHook.cs
http://hongliang.seesaa.net/article/7539988.html
こちらのサイトのKeyboardHook3.cs
試したこと
タスクトレイを左クリックした際にContextMenuStripが表示されるよう作ってみましたが、その時にもタスクバーは出てしまいました。
現象の起きる最低限のプログラムを作成しました。(ソース修正しました。)
FormにnotifyIconとcontextMenuStripを追加してHideさせてみましたが、
タスクトレイを右クリックした時にはタスクバーに表示はされませんが、
RControlキーを押してマウスポインターの位置でContextMenuStripを出すとやはりタスクバーが出てしまいました。
回答2件
あなたの回答
tips
プレビュー