以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于listview行的text属性动态编辑问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=67172)

--  作者:jiangxun
--  发布时间:2015/4/19 20:24:00
--  关于listview行的text属性动态编辑问题

请况:一,有listview1,和listview2

        二,从listview1拖动到listview2

        三,itm1.text为“姓名--单位名称”,itm1.name为“用户名”

        四,移动后listview2的新行itm2的itm2.text也为“姓名--单位名称”

        五,要将itm2.text改为“姓名”

请求援助内容:

在哪个事件里完成这个text属性的变换,希望移动完成后立刻完成变换

       


--  作者:jiangxun
--  发布时间:2015/4/19 20:44:00
--  

Dim lvw As WinForm.ListView = e.Sender
Dim ss1 As String
If e.Source.Name =  "ListView1" \'如果是从员工列表中拖过来的行
    e.Delete = False \'不要删除原来的项目
End If
Dim itm As WinForm.ListViewRow =  e.Source.Rows(e.OldIndex) \'获取要拖动过来的行
If e.Source.Name <> e.Sender.Name Then \'如果是从其他ListView中拖动过来的
    If e.Sender.Rows.Contains(itm.Name) \'判断活动一是否已经包括此员工
        MessageBox.Show("此员工已经是管理员,无需重复!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        e.Cancel = True \'取消本次拖动
    End If
End If

Dim itm2 As WinForm.ListViewRow =  e.Sender.Rows(e.NewIndex)
ss1 = itm2.text
messagebox.show(ss1)

Dim Values() As String
Values = ss1.split("----")
itm2.text = Values(0)

上述messagebox返回的不是新添的行,而是原有的行


--  作者:jiangxun
--  发布时间:2015/4/19 20:45:00
--  
上述是在事件:BeforeDropRow中编写
--  作者:狐狸爸爸
--  发布时间:2015/4/19 21:38:00
--  
在BeforeDropRow写:

Dim itm As WinForm.ListViewRow =  e.Source.Rows(e.OldIndex)
itm.Text  = “xxx” 
itm("列名") = "xxx”

在来源的listview修改就行,因为这个行在执行这个事件后就会移到目标Listview中
[此贴子已经被作者于2015/4/19 21:38:51编辑过]

--  作者:jiangxun
--  发布时间:2015/4/19 23:22:00
--  
哪,source的text也就同时被改了?