以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]ListView 大图标分页显示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57026) |
||||
-- 作者:yifan3429 -- 发布时间:2014/9/17 9:13:00 -- [求助]ListView 大图标分页显示 帮助里面是详细的分页显示案例 我需要大图标分页显示 每页显示20行 感觉自己改的有点乱 关键是没有理解其含义 变通的关键节点位置, 上来求助老师们帮忙 分页显示_AfterLoad
Dim st As Date = Date.Now Forms("稍后窗").Show() Dim lvw As WinForm.ListView =
e.Form.Controls("ListView1") lvw.CheckBoxes = True systemready = False lvw.StopRedraw() \'暂停绘制 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.LargeIcon \'显示模式为大图标 lvw.Images.LargeSize = New Size(180,120) \'定义大图标尺寸 For Each dr As Row In Tables("产品数据库").Rows \'从数据表中提取数据
Dim Key As String = dr("产品效果图") \'获取此员工的照片文件
lvw.Images.AddLargeImage(Key,Vars("IP") & Key) \'添加照片,直接用文件名作为图片键值
Dim vr As WinForm.ListViewRow
= lvw.Rows.Add() \'增加一行 vr.Text = dr("产品编号") & dr("产品名称") \'设置标题 vr.ImageKey = Key \'设置图片键值 vr.Tag = dr Next lvw.ResumeRedraw()
\'恢复绘制 systemready = True Forms("稍后窗").Close() MessageBox.Show("抱歉!让您久等了:
" & (Date.Now - st).TotalSeconds & "秒")
\' \'Dim trv As
WinForm.TreeView = e.Form.Controls("TreeView1") \'trv.BuildTree("产品数据库",
"家具风格|家具分类|产品名称") \'trv.Nodes.Insert("显示所有行",0) \'
Dim lbl As
WinForm.Label lbl =
e.Form.Controls("Welcome") lbl.Text = "今天是"
& format(Today,"yyyy年MM月dd日")
& " 天禧家欢迎您!"
分页显示_btnShow_Click
Dim lvw As
WinForm.ListView = e.Form.Controls("ListView1") Dim pg As Integer
= e.Form.Controls("Label1").Text lvw.CheckBoxes =
True systemready =
False Dim idx1 As Integer
= (pg - 1) * 20 \'获取要显示的第一行 Dim idx2 As
Integer = pg * 20 - 1 \'获取要显示的最末行 idx2 =
Math.Min(DataTables(Vars("表A")).dataRows.Count -1,idx2) \'idx2不能超过表的最大行数 For idx As Integer
= idx1 To idx2 lvw.StopRedraw() \'暂停绘制 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear()
\'清除原来的图片 lvw.View =
ViewMode.LargeIcon \'显示模式为大图标 lvw.Images.LargeSize
= New Size(150,100) \'定义大图标尺寸 For Each dr As Row
In Tables("产品数据库").Rows \'从数据表中提取数据 Dim Key As String = dr("产品效果图") \'获取此员工的照片文件 lvw.Images.AddLargeImage(Key,Vars("IP")
& Key) \'添加照片,直接用文件名作为图片键值 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.Text = dr("编号备注") & dr("产品名称") \'设置标题 vr.ImageKey = Key \'设置图片键值 vr.Tag = dr Next Next lvw.ResumeRedraw()
\'恢复绘制 systemready = True
分页显示_第一页_Click
Dim lbl As WinForm.Label =
e.Form.Controls("Label1") Dim btn As WinForm.Button =
e.Form.Controls("btnShow") Dim pg As Integer = lbl.Text \'当前页号 If pg <> 1 Then
lbl.Text = 1 End If btn.PerformClick() \'模拟单击显示按钮
分页显示_上一页_Click
Dim lbl As WinForm.Label =
e.Form.Controls("Label1") Dim btn As WinForm.Button =
e.Form.Controls("btnShow") Dim pg As Integer = lbl.Text \'当前页号 If pg > 1 Then
lbl.Text = pg - 1 End If btn.PerformClick() \'模拟单击显示按钮
分页显示_下一页_Click
Dim lbl As WinForm.Label =
e.Form.Controls("Label1") Dim btn As WinForm.Button =
e.Form.Controls("btnShow") Dim pg As Integer = lbl.Text \'当前页号 Dim pgs As Integer =
math.Ceiling(DataTables(Vars("表A")).DataRows.Count / 20) \'计算出总页数 If pg < pgs Then
lbl.Text = pg + 1 End If btn.PerformClick() \'模拟单击显示按钮
|
||||
-- 作者:有点甜 -- 发布时间:2014/9/17 9:20:00 -- 那你现在哪里有问题?请做个具体的例子说明。 |
||||
-- 作者:yifan3429 -- 发布时间:2014/9/17 10:25:00 -- 点击按钮就死机 分页无效
|
||||
-- 作者:有点甜 -- 发布时间:2014/9/17 10:33:00 -- afterload代码 和 显示按钮的代码
Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") lvw.StopRedraw() \'暂停绘制 |
||||
-- 作者:yifan3429 -- 发布时间:2014/9/17 11:01:00 -- 分页显示_上一页_Click
Dim lbl As WinForm.Label = e.Form.Controls("Label1") Dim btn As WinForm.Button = e.Form.Controls("btnShow") Dim pg As Integer = lbl.Text \'当前页号 If pg > 1 Then lbl.Text = pg - 1 End If btn.PerformClick() \'模拟单击显示按钮 怎样判断 到顶了
MessageBox.Show("已经到顶了")
分页显示_下一页_Click
Dim lbl As WinForm.Label = e.Form.Controls("Label1") Dim btn As WinForm.Button = e.Form.Controls("btnShow") Dim pg As Integer = lbl.Text \'当前页号 Dim pgs As Integer = math.Ceiling(DataTables(Vars("表A")).DataRows.Count / 20) \'计算出总页数 If pg < pgs Then lbl.Text = pg + 1 End If btn.PerformClick() \'模拟单击显示按钮 怎样判断 到底没有了 MessageBox.Show("已经到底了") [此贴子已经被作者于2014-9-17 11:01:17编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2014/9/17 11:05:00 -- If pg > 1 Then lbl.Text = pg - 1 Else MessageBox.Show("已经到顶了") End If
|
||||
-- 作者:有点甜 -- 发布时间:2014/9/17 11:06:00 -- If pg < pgs Then lbl.Text = pg + 1 Else MessageBox.Show("已经到底了") End If |
||||
-- 作者:yifan3429 -- 发布时间:2014/9/17 19:52:00 -- Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") Dim pg As Integer = e.Form.Controls("Label1").Text lvw.CheckBoxes = True systemready = False Dim idx1 As Integer = (pg - 1) * 15\'获取要显示的第一行 Dim idx2 As Integer = pg * 15 - 1 \'获取要显示的最末行 idx2 = Math.Min(DataTables(Vars("表A")).dataRows.Count -1,idx2) \'idx2不能超过表的最大行数 lvw.StopRedraw() \'暂停绘制 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.LargeIcon \'显示模式为大图标 lvw.Images.LargeSize = New Size(220,150) \'定义大图标尺寸 For idx As Integer = idx1 To idx2 Dim dr As Row = Tables(Vars("表A")).Rows(idx) Dim Key As String = dr("产品效果图") \'获取此员工的照片文件 lvw.Images.AddLargeImage(Key,Vars("IP") & Key) \'添加照片,直接用文件名作为图片键值 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.Text = dr("产品编号") & dr("产品名称") \'设置标题 vr.ImageKey = Key \'设置图片键值 vr.Tag = dr Next lvw.ResumeRedraw() \'恢复绘制 systemready = True 重载决策失败,因为没有最适合这些参数的 Public“Item”: \'Public ReadOnly Property Item(Index As Integer) As Foxtable.DataTable\': 不是最特定的。 \'Public ReadOnly Property Item(TableName As String) As Foxtable.DataTable\': 不是最特定的。 |
||||
-- 作者:有点甜 -- 发布时间:2014/9/17 19:55:00 -- 这段代码不会报这个错。 |
||||
-- 作者:yifan3429 -- 发布时间:2014/9/17 20:01:00 -- 系统启动时会出现 启动后就不会了 原因 该是 启动时需要的数据没有加载 而造成的 删除错误窗 继续不影响 就是没有按照预定的加载第一页 点击按钮就会出现数据 影响操作 Dim lbl As WinForm.Label lbl = e.Form.Controls("Welcome") lbl.Text = "今天是" & format(Today,"yyyy年MM月dd日") & " 天禧家欢迎您!" \'------------------------------------------------- If User.Name <> "皮新华" Then e.Form.Controls("Button14").Visible = False Else e.Form.Controls("Button14").Visible = True End If \'---------------------------------------------------- Dim sp As WinForm.SplitContainer = e.Form.Controls("SplitContainer2") sp.Panel1.Collapsed = True Dim sp1 As WinForm.SplitContainer = e.Form.Controls("SplitContainer1") sp1.Panel1.Collapsed = True \'----------------------------------------------------------- Forms("稍后窗").Show Dim lvw As WinForm.ListView = e.Form.Controls("ListView1") Dim pg As Integer = e.Form.Controls("Label1").Text lvw.CheckBoxes = True systemready = False Dim idx1 As Integer = (pg - 1) * 15\'获取要显示的第一行 Dim idx2 As Integer = pg * 15 - 1 \'获取要显示的最末行 idx2 = Math.Min(DataTables(Vars("表A")).dataRows.Count -1,idx2) \'idx2不能超过表的最大行数 lvw.StopRedraw() \'暂停绘制 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.LargeIcon \'显示模式为大图标 lvw.Images.LargeSize = New Size(220,150) \'定义大图标尺寸 For idx As Integer = idx1 To idx2 Dim dr As Row = Tables(Vars("表A")).Rows(idx) Dim Key As String = dr("产品效果图") \'获取此员工的照片文件 lvw.Images.AddLargeImage(Key,Vars("IP") & Key) \'添加照片,直接用文件名作为图片键值 Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 vr.Text = dr("产品编号") & dr("产品名称") \'设置标题 vr.ImageKey = Key \'设置图片键值 vr.Tag = dr Next lvw.ResumeRedraw() \'恢复绘制 systemready = True e.Form.Controls("btnShow").PerformClick \'模拟单击显示按钮,显示第一页数据 Forms("稍后窗").Close \'------------------------------------------------------------------------ AfterLoad全部代码 是不是有冲突啊 如果是在设计窗口预览时没有错误出出现的 [此贴子已经被作者于2014-9-17 20:04:40编辑过]
|