2009-08-19 1 views
0

私は、Windows Forms ContextMenuStripコントロールに約200個の国のリストを表示させようとしています。現在は縦にすべて表示され、リストの一番下の国にスクロールするのに長い待ち時間が生じます。私はContextMenuStrip.LayoutStyleプロパティを使いこなそうとしましたが、どこからでも私を得ていません。誰にもこれのためのヒントがありますか?私はまた、Googleを検索したが、答えを見つけていない。助けてくれてありがとう!ContextMenuStripカスタムレイアウト

答えて

0

コンテキストメニューでマウスローラーまたはページを使用する方法がわかりません。 contextMenuStripの代わりに200個の国があるドック付きリストボックスを含むフォームを開き、グローバル変数またはパブリック変数で選択を返すことができます。 Formborderstyle = noneはタイトルバーを取り除きます。ダブルクリック以外のイベントを使用すると、コンテキストメニューのユーザーインターフェイスをより密接に模倣することができます。

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

関連する問題