2009-08-19 187 views
0

我試圖讓Windows窗體ContextMenuStrip控件顯示一個約200個國家/地區的列表。目前,它將全部垂直顯示,這會造成等待時間過長,無法滾動到列表底部附近的國家。我試着用ContextMenuStrip.LayoutStyle屬性搞亂,但它並沒有讓我獲得任何地方。可能有人對此有任何提示嗎?我也搜索谷歌,但還沒有找到答案。謝謝你的幫助!ContextMenuStrip自定義佈局

回答

0

我不知道使用鼠標滾輪或下拉菜單的方式。您可以打開一個包含200個國家的停靠列表框的表單,並通過全局變量或公共變量返回選擇,而不是使用contextMenuStrip。 Formborderstyle = none將擺脫標題欄。如果您希望它更接近模仿上下文菜單用戶界面,則可以使用doubleclick以外的事件。

Public Class Form1 
    Public selectedCountry As String 
    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown 
    If e.Button = Windows.Forms.MouseButtons.Right Then Form2.ShowDialog() 
    End Sub 
End Class 

Public Class Form2 
    Private Sub ListBox1_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.DoubleClick 
    Form1.selectedCountry = ListBox1.SelectedItem 
    Me.Close() 
    End Sub 
End Class 
0

這不是一個真正的代碼相關的答案,但你有沒有想過按洲劃分國家並在子菜單中顯示它?這樣用戶可能能夠更快地到達他們想要的國家。如果不是靠大陸,那麼也許另一個分組會更合適?

+0

想過它 - 但是,業務需求並沒有要求。他們想要一個完整的字母表列表。如果沒有辦法,那麼我們可能必須走你所建議的路線。 – bbqchickenrobot 2009-08-20 00:35:38

+0

如何按字母順序將它們分組? A-F G-P等? – Joseph 2009-08-20 00:42:32