gpt4 book ai didi

c# - 如何对 ToolStripItem 集合中的项目进行排序?

转载 作者:太空狗 更新时间:2023-10-29 21:14:46 25 4
gpt4 key购买 nike

我通过以下方式将字符串(项目)动态添加到 ToolStripItemCollection:

Dim onClickHandler As System.EventHandler = New System.EventHandler(AddressOf Symbol_Click)
Dim item As New ToolStripMenuItem(newSymbol, Nothing, onClickHandler)
SomeToolStripMenuItem.DropDownItems.Add(item)

因此项目不是一次性添加的,而是在整个程序 session 期间基于外部触发逐一添加的。每次添加新项目时,我都想对下拉列表进行排序。我有什么选择来实现这一目标?

最佳答案

由于 ToolStripItemCollection 没有“排序”功能,您必须监听更改并编写自己的排序方法:

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

您必须使用自己的比较器 ( https://learn.microsoft.com/en-us/dotnet/api/system.collections.arraylist.sort )

关于c# - 如何对 ToolStripItem 集合中的项目进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5102205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com