回 帖 发 新 帖 刷新版面

主题:请教一个listview的菜鸟问题

假如有一个listview1的控件,有3个列:编号,姓名和年龄,里面有很多行。
现在我想要鼠标选中某一行以后,单击,即可分别获得该行的三个值赋值给3个变量,比如:001,张三,男,等等。

我发现VB6和VB.net中的listview控件获取这个值的方法不同,请高手执教在.net中应该怎么做?谢谢!

回复列表 (共3个回复)

沙发

ItemActivate事件中,使用控件的SelectedItems或者SelectedIndices来返回选中的项或索引。

板凳

Imports System.IO



3 楼

不好意思..上面搞错了..
Imports System.IO


     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ListView1.View = View.Details
        ListView1.FullRowSelect = True
        Dim _ColumnHeader As ColumnHeader
        _ColumnHeader = New ColumnHeader()
        _ColumnHeader.Text = "文件名"
        _ColumnHeader.Width = 120
        ListView1.Columns.Add(_ColumnHeader)
        _ColumnHeader = New ColumnHeader()
        _ColumnHeader.Text = "长度"
        _ColumnHeader.Width = 60
        ListView1.Columns.Add(_ColumnHeader)
        _ColumnHeader = New ColumnHeader()
        _ColumnHeader.Text = "创建时间"
        _ColumnHeader.Width = 100
        ListView1.Columns.Add(_ColumnHeader)
        Dim _ListFile As FileInfo
        Dim _Files As FileInfo()
        _Files = New DirectoryInfo("D:\").GetFiles
        For Each _ListFile In _Files
            Dim _Listitem As New ListViewItem(_ListFile.Name)
            _Listitem.SubItems.Add(_ListFile.Length.ToString)
            _Listitem.SubItems.Add(_ListFile.CreationTime.ToShortTimeString)
            ListView1.Items.Add(_Listitem)
        Next
    End Sub

    Private Sub ListView1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseDown
        Dim _item As ListViewItem = ListView1.GetItemAt(e.X, e.Y)
        If Not (_item Is Nothing) Then
            Label1.Text = _item.Text
            Label2.Text = _item.SubItems(1).Text.ToString
            Label3.Text = _item.SubItems(2).Text.ToString
        End If
    End Sub

我来回复

您尚未登录,请登录后再回复。点此登录或注册