以文本方式查看主题
- Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2)
---- ListView增加双击事件 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=127421)
|
-- 作者:刘林
-- 发布时间:2018/11/13 19:15:00
-- ListView增加双击事件
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编辑过]
|
-- 作者:刘林
-- 发布时间: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 详细错误信息: 未将对象引用设置到对象的实例。
|
-- 作者:刘林
-- 发布时间: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("名称"))
这样测试还是不行,请问老师怎样才对?
|
-- 作者:有点蓝
-- 发布时间:2018/11/13 20:25:00
--
|
-- 作者:刘林
-- 发布时间: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编辑过]
|
-- 作者:刘林
-- 发布时间:2018/11/13 20:46:00
--
key1 = ProjectPath & "images\\sjtb.jpg" 另外追加一个问题:如何将sjtb.jpg设置为透明不显白边
|
-- 作者:有点蓝
-- 发布时间:2018/11/13 20:51:00
--
试卷表有名称列,但是ListView 没有,rowactive里获取的是ListView的列,而不是表格的列,两码事。
回6楼,没有办法设置
|
-- 作者:刘林
-- 发布时间: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("名称")是空的,应该怎样写?
|
-- 作者:有点蓝
-- 发布时间:2018/11/13 21:35:00
--
上面代码没有给列赋值,给ListView 各个列赋值参考:http://www.foxtable.com/webhelp/scr/2782.htm
|
-- 作者:刘林
-- 发布时间:2018/11/13 22:28:00
--
上面问题解决了
现在是下面要显示的文本字体大小如何设置,另外,我想用vbcrlf & r("名称") 显示在单独显示在第行,但不点击是在第二行,点击了才在这第三行呢
vr.Text =r("年级")& "年级 " & r("科目") & vbcrlf & r("试卷类型") & vbcrlf & r("名称") \'设置标题
|