Windowsフォームでtoolstripdropdownを使用して、別のボタンをクリックするとボタンのリストを表示しました。
var td = new ToolStripDropDown
{
AutoSize = true,
DropShadowEnabled = false,
BackColor = Color.Transparent,
Margin = Padding.Empty,
Padding = Padding.Empty
};
var host = new ToolStripControlHost(panel)
{
BackColor = Color.Transparent,
Margin = Padding.Empty,
Padding = Padding.Empty
};
td.Items.Add(host);
パネルには、表示されるボタンのリストが含まれています。パネルをユーザーに表示するには、ボタン(表示)をクリックして、次の行が呼び出されます。
td.Show(pointonScreen);
デフォルトでAutoClose
は、true に設定されています。そのため、ユーザーがフォームのどこかをクリックすると、toolstripdropdown が閉じられます。これで結構です。
私の要件:
- 表示ボタンをクリック
- td.show() を呼び出して toolstripdropdown を表示し、次の場合はポップアップを閉じます。
td.Visible
- もう一度 [表示] ボタンをクリックします。
- toolstripdrown を閉じる必要があります
- フォーム内の任意の場所をクリックします。toolstripdropdown が表示されている場合は閉じます。
現在、ステップ 3 で、ボタン クリック イベントが発生する前に、toolstripdropdown が閉じられています。再びドロップダウンが表示されます。
私の要件を達成する他の方法はありますか?