【问题标题】:ContextMenuStrip Custom LayoutContextMenuStrip 自定义布局
【发布时间】:2009-08-20 13:38:55
【问题描述】:

我正在尝试让 Windows 窗体 ContextMenuStrip 控件显示国家列表,总共大约 200 个。目前它会垂直显示它们,这会导致需要很长时间才能滚动到列表底部附近的国家/地区。我试过弄乱 ContextMenuStrip.LayoutStyle 属性,但它没有让我到任何地方。可能有人对此有任何提示吗?我也搜索了谷歌,但没有找到答案。谢谢你的帮助!

【问题讨论】:

    标签: .net winforms contextmenustrip


    【解决方案1】:

    我不知道如何使用鼠标滚轮或通过上下文菜单向下翻页。您可以打开一个包含 200 个国家/地区的停靠列表框的表单,而不是 contextMenuStrip,然后通过全局或公共变量返回选择。 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
    

    【讨论】:

      【解决方案2】:

      这实际上不是与代码相关的答案,但是您是否考虑过按大陆对国家/地区进行分组并将其显示在子菜单中?这样,用户可能能够更快地到达他们想要的国家。如果不是按大陆,那么也许另一个分组会更合适?

      【讨论】:

      • 考虑过了 - 但是,业务需求并没有要求这样做。他们想要一个完整的按字母顺序排列的列表。如果没有办法,那么我们可能不得不走您建议的路线。
      • 按字母顺序对它们进行分组怎么样? A-F G-P 等?
      猜你喜欢
      • 1970-01-01
      • 2018-08-02
      • 2015-04-05
      • 2017-10-15
      • 2016-06-28
      • 2015-08-11
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多