回答編集履歴
2
変更
answer
CHANGED
@@ -110,15 +110,13 @@
|
|
110
110
|
|
111
111
|
### 追記
|
112
112
|
```C#
|
113
|
-
public static class UnsafeNativeMethods
|
114
|
-
{
|
115
|
-
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
|
116
|
-
public static extern bool SetForegroundWindow(HandleRef hWnd);
|
117
|
-
}
|
118
113
|
|
114
|
+
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
|
115
|
+
public static extern bool SetForegroundWindow(HandleRef hWnd);
|
116
|
+
|
119
117
|
public static void OpenMenu()
|
120
118
|
{
|
121
|
-
|
119
|
+
SetForegroundWindow(new HandleRef(rmenu, rmenu.Handle));
|
122
120
|
rmenu.Items.Clear();
|
123
121
|
rmenu.Items.Add("アイテム1");
|
124
122
|
rmenu.Items.Add("アイテム2");
|
1
追記
answer
CHANGED
@@ -106,4 +106,27 @@
|
|
106
106
|
ただ、この時にメニュー以外の部分をクリックしてもメニューが消えない
|
107
107
|
動きをしております。(この対処も分かりませんでした。)
|
108
108
|
|
109
|
-
多分もっとすっきりした方法があるのだと思います。
|
109
|
+
多分もっとすっきりした方法があるのだと思います。
|
110
|
+
|
111
|
+
### 追記
|
112
|
+
```C#
|
113
|
+
public static class UnsafeNativeMethods
|
114
|
+
{
|
115
|
+
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
|
116
|
+
public static extern bool SetForegroundWindow(HandleRef hWnd);
|
117
|
+
}
|
118
|
+
|
119
|
+
public static void OpenMenu()
|
120
|
+
{
|
121
|
+
UnsafeNativeMethods.SetForegroundWindow(new HandleRef(rmenu, rmenu.Handle));
|
122
|
+
rmenu.Items.Clear();
|
123
|
+
rmenu.Items.Add("アイテム1");
|
124
|
+
rmenu.Items.Add("アイテム2");
|
125
|
+
rmenu.Items.Add("-");
|
126
|
+
rmenu.Items.Add("キャンセル");
|
127
|
+
rmenu.Show(Cursor.Position, ToolStripDropDownDirection.BelowRight);
|
128
|
+
rmenu.ShowImageMargin = false;
|
129
|
+
}
|
130
|
+
|
131
|
+
```
|
132
|
+
こうすることにより、フォームを表示し、フォーカス移動を行わなくてもタスクバーに表示されなくなりました。
|