以文本方式查看主题 - 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=89754) |
||||
-- 作者:沦落深蓝 -- 发布时间:2016/8/29 11:36:00 -- [求助]关于listview显示问题 PS:第一项“姓名”无论如何都居中不了,求解~~~~
截图如下:
~~~~~~怎么传不了了~~~稍后补上 此主题相关图片如下:无标题.png 数据都是瞎写的~~~不要深究
[此贴子已经被作者于2016/8/29 11:47:08编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/29 12:18:00 -- 贴出代码,或者上传实例。 |
||||
-- 作者:沦落深蓝 -- 发布时间:2016/8/29 12:44:00 -- \'训练管理页面生成 If e.Sender.SelectedPage.Text ="训练管理" Then Dim lvw As WinForm.ListView = e.Form.Controls("LV训练成绩") lvw.StopRedraw() \'停止绘制 lvw.Groups.Clear() \'清除原来的分组 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 Dim cls() As String = {"姓名","JX","职务","考核情况_完成时间","考核情况_扣分情况","考核情况_最终得分","等级评定","考核时间"} \'定义列名 Dim wds() As Integer = {80,80,80,100,100,100,80,100} \'定义列宽 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) \'指定标题,这里标题和列名相同 c.Width = wds(i) \'指定列宽 c.TextAlign = HorizontalAlignment.center Next For Each zh As String In DataTables("考核成绩表").GetValues("考核项目") \'增加分组 Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() grp.Name = zh grp.Text = zh Next For Each dr As DataRow In DataTables("考核成绩表").DataRows Dim r As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 r.Group = dr("考核项目") \'指定所属分组 For Each cl As String In cls \'逐列取值 r(cl) = dr(cl) Next Next lvw.ResumeRedraw() \'恢复绘制 lvw.Columns("考核情况_完成时间").Text = "考核用时" \'修改考"核情况_完成时间"列的标题 lvw.Columns("考核情况_扣分情况").Text = "扣分情况" lvw.Columns("考核情况_最终得分").Text = "最终得分" End If 这是利用页面集合当主窗口,设计的其中一个页面的内容,调用的表就是普通成绩统计表 PS:菜鸟才学两三个月,前期都在看文件,近一两周才开始动手,问题比较多,还请老师们多多指教
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/29 14:46:00 -- 上传foxtable实例。 |
||||
-- 作者:沦落深蓝 -- 发布时间:2016/8/29 15:35:00 --
|
||||
-- 作者:大红袍 -- 发布时间:2016/8/29 15:52:00 -- \'训练管理页面生成 If e.Sender.SelectedPage.Text ="训练管理" Then Dim lvw As WinForm.ListView = e.Form.Controls("LV训练成绩") lvw.StopRedraw() \'停止绘制 lvw.Groups.Clear() \'清除原来的分组 lvw.Columns.Clear() \'清除原来的列 lvw.Rows.Clear() \'清除原来的行 lvw.Images.Clear() \'清除原来的图片 lvw.View = ViewMode.Details \'显示模式为详细信息 Dim cls() As String = {"","姓名","JX","职务","考核情况_完成时间","考核情况_扣分情况","考核情况_最终得分","等级评定","考核时间"} \'定义列名 Dim wds() As Integer = {0,80,80,80,100,100,100,80,100} \'定义列宽 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) \'指定标题,这里标题和列名相同 c.Width = wds(i) \'指定列宽 c.TextAlign = HorizontalAlignment.center Next For Each zh As String In DataTables("考核成绩表").GetValues("考核项目") \'增加分组 Dim grp As WinForm.ListViewGroup = lvw.Groups.Add() grp.Name = zh grp.Text = zh For Each xm As String In DataTables("考核成绩表").GetValues("姓名", "考核项目 = \'" & zh & "\'") Dim dr As DataRow = DataTables("考核成绩表").find("考核项目 = \'" & zh & "\' and 姓名 = \'" & xm & "\'", "考核时间 desc") Dim r As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行 r.Group = dr("考核项目") \'指定所属分组 For Each cl As String In cls \'逐列取值 If cl > "" r(cl) = dr(cl) End If Next Next Next lvw.ResumeRedraw() \'恢复绘制 lvw.Columns("考核情况_完成时间").Text = "考核用时" \'修改考"核情况_完成时间"列的标题 lvw.Columns("考核情况_扣分情况").Text = "扣分情况" lvw.Columns("考核情况_最终得分").Text = "最终得分" End If |
||||
-- 作者:沦落深蓝 -- 发布时间:2016/8/29 16:31:00 -- 万分感谢~~~~等我软件制作成了给老板过目以后定会购买正版进行开发~~~今后还请继续指导 领导满意的话就能报销喽~~~
|
||||
-- 作者:沦落深蓝 -- 发布时间:2016/8/29 20:09:00 -- [此贴子已经被作者于2016/8/29 20:09:51编辑过]
|
||||
-- 作者:沦落深蓝 -- 发布时间:2016/8/29 20:09:00 -- [求助] 还有一个问题:Dim cls() As String = {"","姓名","JX","职务","考核情况_完成时间","考核情况_扣分情况","考核情况_最终得分","等级评定","考核时间"} \'定义列名 Dim wds() As Integer = {0,80,80,80,100,100,100,80,100} \'定义列宽 我用在其他地方说:列“”不属于表,为什么这里可以用,换个地方就不行呢???
|
||||
-- 作者:Hyphen -- 发布时间:2016/8/30 8:58:00 -- 完整代码贴出来。 代码并不是随便拷拷就能用的,要根据上下文,更改表名列名等......
|