Я пытаюсь настроить Windows Forms ContextMenuStrip, отображающий список стран, всего около 200. В настоящее время он отображает их все вертикально, что создает длительное время ожидания, чтобы прокрутить список до стран, находящихся в нижней части списка. Я пытался испортить свойство ContextMenuStrip.LayoutStyle, но он никуда меня не достал. У кого-нибудь есть советы по этому поводу? Я также искал google, но не нашел ответа. Спасибо за любую помощь!ContextMenuStrip Custom Layout
0
A
ответ
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
Это не ответ на вопрос, связанный с кодом, но вы подумали о том, как группировать страны по континенту и отображать его в подменю? Таким образом, пользователь, вероятно, сможет быстрее добраться до страны, в которой они хотят. Если бы не континент, возможно, другая группа была бы более подходящей?
Мысль об этом - но деловые требования не просят об этом. Им нужен полный алфавитный список. Если нет пути, нам, возможно, придется идти по предложенному вами маршруту. – bbqchickenrobot
Как насчет группировки в алфавитном порядке? A-F G-P и т. Д.? – Joseph