c# – 如何在ToolStripItemCollection中对项目进行排序?
发布时间:2020-12-15 08:28:58 所属栏目:百科 来源:网络整理
导读:我通过以下方式动态地将字符串(项)添加到ToolStripItemCollection: Dim onClickHandler As System.EventHandler = New System.EventHandler(AddressOf Symbol_Click)Dim item As New ToolStripMenuItem(newSymbol,Nothing,onClickHandler)SomeToolStripMenu
我通过以下方式动态地将字符串(项)添加到ToolStripItemCollection:
Dim onClickHandler As System.EventHandler = New System.EventHandler(AddressOf Symbol_Click) Dim item As New ToolStripMenuItem(newSymbol,Nothing,onClickHandler) SomeToolStripMenuItem.DropDownItems.Add(item) 因此,这些项目不会一次性添加,而是在整个程序会话中基于外部触发器逐个添加.我想在每次添加新项目时对下拉列表进行排序.我有什么选择来实现这一目标? 解决方法
由于ToolStripItemCollection没有“Sort”函数,因此您必须监听更改并编写自己的排序方法:
Private Sub ResortToolStripItemCollection(coll As ToolStripItemCollection) Dim oAList As New System.Collections.ArrayList(coll) oAList.Sort(new ToolStripItemComparer()) coll.Clear() For Each oItem As ToolStripItem In oAList coll.Add(oItem) Next End Sub Private Class ToolStripItemComparer Implements System.Collections.IComparer Public Function Compare(x As Object,y As Object) As Integer Implements System.Collections.IComparer.Compare Dim oItem1 As ToolStripItem = DirectCast(x,ToolStripItem) Dim oItem2 As ToolStripItem = DirectCast(y,ToolStripItem) Return String.Compare(oItem1.Text,oItem2.Text,True) End Function End Class 你必须使用自己的比较器(http://msdn.microsoft.com/en-us/library/0e743hdt.aspx) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- PostgreSQL vacuum_freeze_table_age和vacuum_freeze_min_a
- xml – 是否可以转义当前的XPath谓词以获取包含谓词的值?
- 怎样区分一个flash是NOR型flash还是NAND型flash
- VS中如何添加自定义代码片段——偷懒小技巧
- ruby-on-rails – 覆盖has_many关系的模型名称
- EtherChannel Cisco 端口聚合详解
- 用Ajax技术让IE Web Control Tree View实现大数据量读取
- 测试驱动开发TDD(五)GTest in Linux
- 基于Vue.js的大型报告页项目实现过程及问题总结(一)
- postgresql – Postgres 9.1的Docker容器没有将端口5432暴露