2009-08-19 14 views
0

Ich versuche, eine Windows Forms ContextMenuStrip-Steuerelement eine Liste von Ländern anzeigen, etwa 200 insgesamt. Momentan zeigt es alle vertikal an, was für eine lange Wartezeit sorgt, um zu Ländern am unteren Ende der Liste zu blättern. Ich habe versucht, mit der ContextMenuStrip.LayoutStyle-Eigenschaft herumzuspielen, aber sie hat mich nirgends hingebracht. Könnte jemand dafür irgendwelche Tipps haben? Ich habe auch google gesucht aber die Antwort nicht gefunden. Danke für jede Hilfe!ContextMenuStrip Benutzerdefiniertes Layout

Antwort

0

Ich kenne keine Möglichkeit, einen Mausroller oder eine Seite nach unten mit einem Kontextmenü zu verwenden. Anstelle eines contextMenuStrip können Sie ein Formular öffnen, das eine angedockte Listbox mit den 200 Ländern enthält, und die Auswahl über eine globale oder öffentliche Variable zurückgeben. Formborderstyle = none wird die Titelleiste entfernen. Sie können andere Ereignisse als Doppelklick verwenden, wenn Sie die Benutzeroberfläche des Kontextmenüs genauer nachahmen möchten.

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

Dies ist nicht wirklich eine Code-bezogene Antwort, aber haben Sie darüber nachgedacht, die Länder nach Kontinent zu gruppieren und in einem Untermenü anzuzeigen? Auf diese Weise würde der Benutzer wahrscheinlich schneller in das gewünschte Land gelangen. Wenn nicht nach Kontinenten, dann wäre vielleicht eine andere Gruppierung geeigneter?

+0

Dachte darüber nach - aber die geschäftlichen Anforderungen fragen nicht danach. Sie wollen eine vollständige alphabetische Liste. Wenn es keinen Weg gibt, müssen wir vielleicht den von Ihnen vorgeschlagenen Weg gehen. – bbqchickenrobot

+0

Wie wäre es, sie alphabetisch zu gruppieren? A-F G-P usw.? – Joseph

Verwandte Themen