在VB.net中,如何把listbox中的数值进行排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在VB.net中,如何把listbox中的数值进行排序相关的知识,希望对你有一定的参考价值。

如题,现在listbox中有Apple,Cat,Yellow,Guilty等首字母乱序单词,如何将其首字母从A-Z或者从Z-A排序?用copyto总是会报错:Object reference not set to an instance of an object.
那有没有其他方法呢?

参考技术A Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListBox1.Items.Add("Apple")
ListBox1.Items.Add("Cat")
ListBox1.Items.Add("Yellow")
ListBox1.Items.Add("Guilty")

End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListBox1.Sorted = True
End Sub
End Class
参考技术B vb.net中,listbox控件的Sorted属性有false和true两个,true是自动排序(如果设置的话会马上整理),false是不排序。如果要倒序的话推荐使用数组,这样好操作一些。
还有你的书上是有这些的吧,如果没有的话书可以over了(都是入门级的)
参考技术C VB6.0实现方法:在属性编辑框中,将Sorted属性改为True即可

vb.net中,如何实现鼠标在listbox控件上移动时,鼠标所到的条目背景变黑、字变白;移开后还原?

我知道鼠标单击ListBox中的条目后可以通过ListBox.SelectedItem得到选中的值,
那么怎样可以让鼠标只是移动到条目上就可以得到值呢?

参考技术A 复杂的不会,来点儿简单的,借用在listbox里按下鼠标时再移动,会高亮显示选择行,并且会随鼠标移动而变化的这一特点改进的,不足之处是在listbox里,此时处于鼠标左键在按下状态。
Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2 '模拟鼠标左键按下
Private Sub ListBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseMove
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
End Sub
参考技术B 不能实现,listbox没必要有此功能。
因为listbox被视为一个整体,其每一项背景颜色都根据鼠标移上去而改变。
参考技术C MouseOn、MouseLeave事件 参考技术D 那自带的控件不能实现,百度一下或者自己写一个吧!本回答被提问者采纳

以上是关于在VB.net中,如何把listbox中的数值进行排序的主要内容,如果未能解决你的问题,请参考以下文章

vb.net如何在listbox中增加双击事件?

vb.net中,如何实现鼠标在listbox控件上移动时,鼠标所到的条目背景变黑、字变白;移开后还原?

VB.NET 如何将ListBox列表框的所有项复制到一个数组中,便于排序?谢谢解答

在VB.NET中如何将日期类型转化为String型?

vb.net读取txt文件,按照要求排序其中数据后显示在listbox控件中。

VB.NET Listbox1控件