2009-08-19 3 views
0

Я пытаюсь настроить Windows Forms ContextMenuStrip, отображающий список стран, всего около 200. В настоящее время он отображает их все вертикально, что создает длительное время ожидания, чтобы прокрутить список до стран, находящихся в нижней части списка. Я пытался испортить свойство ContextMenuStrip.LayoutStyle, но он никуда меня не достал. У кого-нибудь есть советы по этому поводу? Я также искал google, но не нашел ответа. Спасибо за любую помощь!ContextMenuStrip Custom Layout

ответ

0

Я не знаю, как использовать мышь или страницу вниз с помощью контекстного меню. Вместо contextMenuStrip вы можете открыть форму, содержащую пристыкованный список с 200 странами в ней, и вернуть выбор через глобальную или общедоступную переменную. Formborderstyle = никто не избавится от заголовка. Вы можете использовать события, отличные от 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

+0

Как насчет группировки в алфавитном порядке? A-F G-P и т. Д.? – Joseph