Foxtable(狐表)用户栏目专家坐堂 → ListView增加双击事件


  共有2803人关注过本帖树形打印复制链接

主题:ListView增加双击事件

帅哥哟,离线,有人找我吗?
刘林
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
ListView增加双击事件  发帖心情 Post By:2018/11/13 19:15:00 [只看该作者]

e.Form.BaseForm.windowstate = 2
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() '暂停绘制
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
lvw.View = ViewMode.LargeIcon '显示模式为大图标
lvw.Images.LargeSize = New Size(117,135) '定义大图标尺寸
Tables("学生信息").sort ="学校名称,班级,学生姓名"
If Tables("学生信息").Rows.Count=0
    MESSAGEBOX.SHOW("请注意,你没有选择浏览学生范围,请选择好再来")
    e.Form.Close
    Return
End If
Dim it As Winform.StripItem = e.Form.Strips("状态栏").Items("left")
Dim ftp1 As New FtpClient
ftp1.Host="47.92.956"
ftp1.Account = ""
ftp1.Password = "
Dim key1 As String
For Each r As Row In Tables("学生信息").Rows '从数据表中提取数据
    Dim Key As String = r("相片") '获取此员工的照片文件
    If FileSys.FileExists(ProjectPath & "remotefiles" & Key) = False
        If ftp1.Download(key,ProjectPath & "remotefiles" & Key) = False
            key1 = ProjectPath & "images\wxp.jpg"
        Else
            key1 = ProjectPath & "remotefiles" & Key
        End If
    Else
        key1 = ProjectPath & "remotefiles" & Key
    End If
    lvw.Images.AddLargeImage(Key1,key1)
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
    vr.Text =r("班级") & " " &  r("学生姓名")  & vbcrlf & r("身份证件号")'设置标题
    vr.ImageKey = Key1 '设置图片键值
Next
lvw.ResumeRedraw() '
it.Text = "共计: " & Tables("学生信息").Rows.count & "人"

 

 

请问老师,能给图标增加双击事件吗,如能该如何做?

[此贴子已经被作者于2018/11/13 20:18:45编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/11/13 20:18:00 [只看该作者]

我找到了在rowactive

测试

 

Dim lr As WinForm.ListViewRow = e.Sender.Current
MessageBox.Show("你双击的是:" & lr("名称"))

 

 提示

.NET Framework 版本:2.0.50727.8793
Foxtable 版本:2018.10.9.1
错误所在事件:窗口,学生相片,ListView1,RowActivate
详细错误信息:
未将对象引用设置到对象的实例。


 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/11/13 20:24:00 [只看该作者]

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current
MessageBox.Show("你双击的是:" & vr("名称"))

 

这样测试还是不行,请问老师怎样才对?


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/13 20:25:00 [只看该作者]

没有Name为名称”的列http://www.foxtable.com/webhelp/scr/2853.htm

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/11/13 20:30:00 [只看该作者]

e.Form.BaseForm.windowstate = 2
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() '暂停绘制
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
lvw.View = ViewMode.LargeIcon '显示模式为大图标
lvw.Images.LargeSize = New Size(150,180) '定义大图标尺寸
Tables("试卷").sort ="年级,科目,试卷类型,名称"
If Tables("学生信息").Rows.Count=0
    MESSAGEBOX.SHOW("请注意,你没有选择浏览学生范围,请选择好再来")
    e.Form.Close
    Return
End If
Dim it As Winform.StripItem = e.Form.Strips("状态栏").Items("left")
Dim key1 As String
For Each r As Row In Tables("试卷").Rows '从数据表中提取数据
    key1 = ProjectPath & "images\sjtb.jpg"
    lvw.Images.AddLargeImage(Key1,key1)
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
    vr.Text =r("年级")& "年级  " &  r("科目")  & vbcrlf & r("试卷类型") & vbcrlf & r("名称")  '设置标题
    vr.ImageKey = Key1 '设置图片键值
Next
lvw.ResumeRedraw() '
it.Text = "共计: " & Tables("试卷").Rows.count & "套资料"

 

 

试卷表有名称列

[此贴子已经被作者于2018/11/13 20:43:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/11/13 20:46:00 [只看该作者]

  key1 = ProjectPath & "images\sjtb.jpg"
另外追加一个问题:如何将sjtb.jpg设置为透明不显白边

 

 


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/13 20:51:00 [只看该作者]

试卷表有名称列,但是ListView 没有,rowactive里获取的是ListView的列,而不是表格的列,两码事。

回6楼,没有办法设置

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/11/13 21:03:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CSEL   ECT 年级,科目,试卷类型,名称  From {试卷} "
dt = cmd.ExecuteReader()
Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
trv.BuildTree(dt,"年级|科目|试卷类型|名称")
e.Form.BaseForm.windowstate = 2
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
lvw.StopRedraw() '暂停绘制
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
lvw.View = ViewMode.LargeIcon '显示模式为大图标
lvw.Images.LargeSize = New Size(150,180) '定义大图标尺寸
Tables("试卷").sort ="年级,科目,试卷类型,名称"
Dim it As Winform.StripItem = e.Form.Strips("状态栏").Items("left")
Dim cls() As  String = {"年级","科目","试卷类型","名称","试卷文件"} '指定要显示的各列
For i As  Integer = 0 To  cls.Length - 1
    Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
    c.Name = cls(i)  '指定列名
    c.Text = cls(i)'指定列标题
Next
Dim key1 As String
For Each r As Row In Tables("试卷").Rows '从数据表中提取数据
    key1 = ProjectPath & "images\sjtb.jpg"
    lvw.Images.AddLargeImage(Key1,key1)
    Dim vr As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
    vr.Text =r("年级")& "年级  " &  r("科目")  & vbcrlf & r("试卷类型") & vbcrlf & r("名称")  '设置标题
    vr.ImageKey = Key1 '设置图片键值
Next
lvw.ResumeRedraw() '
it.Text = "共计: " & Tables("试卷").Rows.count & "套资料"

 

 

我在afterload里写了这些

 

在rowactive

 

Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim vr As WinForm.ListViewRow = lvw.Current
MessageBox.Show("你双击的是:" & vr("名称"))

 

 

双击没出错提示,但vr("名称")是空的,应该怎样写?

 


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110581 积分:562801 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/11/13 21:35:00 [只看该作者]

上面代码没有给列赋值,给ListView 各个列赋值参考:http://www.foxtable.com/webhelp/scr/2782.htm

 回到顶部
帅哥哟,离线,有人找我吗?
刘林
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1953 积分:15015 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/11/13 22:28:00 [只看该作者]

上面问题解决了 

现在是下面要显示的文本字体大小如何设置,另外,我想用vbcrlf & r("名称") 显示在单独显示在第行,但不点击是在第二行,点击了才在这第三行呢 

vr.Text =r("年级")& "年级  " &  r("科目")  & vbcrlf & r("试卷类型") & vbcrlf & r("名称")  '设置标题


 回到顶部
总数 15 1 2 下一页