2016-08-17 41 views
1

我有一個按鈕,並放置在用戶控件 我想點擊的用戶控件的比頓時,下面的按鈕控制蹦出所有其他控件的TOPP另一個控制 enter image description here顯示用戶控件在Popoup

+1

也許這可以幫助:http://www.codeproject.com/Articles/9508/Display-any-usercontrol-as-a-popup-menu –

回答

4

你可以將任何類型的ControlToolStripControlHost然後將其添加到ToolStripDropDown項目,然後顯示在下拉:

Dim dropdown As ToolStripDropDown = New ToolStripDropDown() 
Dim c As UserControl1 = New UserControl1() 
Dim host As ToolStripControlHost = New ToolStripControlHost(c) 
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
    Handles Button2.Click 
    If (dropdown.Items.Count = 0) Then 
     host.BackColor = Color.White 
     host.Margin = New Padding(2) 
     c.MinimumSize = New Size(120, 100) 
     dropdown.Padding = New Padding(0) 
     dropdown.Margin = New Padding(0) 
     dropdown.Items.Add(host) 
    End If 
    dropdown.Show(Button2, 0, Button1.Height) 
End Sub 

DropDown

+0

謝謝,但你錯了。按鈕和清單都在usercontrol中,usercontrol的大小是按鈕的大小。我將在託管按鈕和清單的usercontrol中添加代碼。 – Smith

+0

沒問題,我想你的控件(按鈕除外)在面板中。那麼,使用該面板來完成這項工作。 –

+0

usecontrol根據內容自動調整大小,因此我不能像'c.MinimumSize = New Size(120,100)'那樣指定顯式大小,我該如何解決這個問題,以及在哪裏添加了項目你的代碼中有'dropdown'嗎? – Smith