ToolStripDropDown
と一緒にToolStripControlHost
を使用すると、ComboBox
と同じように動作します。マウスイベントの処理について心配する必要はありません。私は前にこれを使用しました
:フォーム上のButtonコントロールと
Private Sub ShowControl(ByVal fromControl As Control, ByVal whichControl As Control)
'\\ whichControl needs MinimumSize set:'
whichControl.MinimumSize = whichControl.Size
Dim toolDrop As New ToolStripDropDown()
Dim toolHost As New ToolStripControlHost(whichControl)
toolHost.Margin = New Padding(0)
toolDrop.Padding = New Padding(0)
toolDrop.Items.Add(toolHost)
toolDrop.Show(Me, New Point(fromControl.Left, fromControl.Bottom))
End Sub
クイックデモ:
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
ShowControl(Button1, New MonthCalendar)
End Sub
あなたのタイトルに質問に答えるために、私はのPInvoke呼び出しを考えるSetCaptureとRelease Captureは、そのタイプの機能を処理するために使用されます。
ここで別の解決策を見つけることができます:http://stackoverflow.com/a/15305176/1522062 –