Foxtable(狐表)用户栏目专家坐堂 → 关于窗口内多个listview 同步增大的问题


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

主题:关于窗口内多个listview 同步增大的问题

帅哥哟,离线,有人找我吗?
堕落的后天
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
关于窗口内多个listview 同步增大的问题  发帖心情 Post By:2017/11/23 16:10:00 [只看该作者]

在一个窗口中放了一个listview ,只要设置他的“锚定”属性上下左右,这样在窗口最大化时,listview也会同步比例增大.


但是如果在一个窗口中并列均匀放置5个listview ,如何在同样窗口最大化时,同步均匀增大5个listview()

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


加好友 发短信
等级:超级版主 帖子:110587 积分:562831 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/11/23 16:42:00 [只看该作者]

那就不能做“锚定”。

窗口sizechanged事件,获取窗口的大小,平均计算listview 的大小(宽和高个除以5),还要动态计算每个listview 的位置top和left。

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


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
  发帖心情 Post By:2017/11/23 20:45:00 [只看该作者]

谢谢版主,知道怎么写了.

 回到顶部
帅哥哟,离线,有人找我吗?
堕落的后天
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
  发帖心情 Post By:2017/11/23 23:01:00 [只看该作者]

想问下  我想用  表里面 一个日期字段来添加分组(日期是date属性的)

写了:


For Each zh As Date In DataTables("预约表").GetValues("日期") '增加分组

    Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()


    grp.Name = zh

Select Case zh.DayOfWeek
        Case 0
            grp.Text = "周日" & zh
        Case 1
            grp.Text = "周一" & zh

        Case 2
            grp.Text = "周二" & zh


        Case 3
            grp.Text = "周三" & zh

        Case 4
            grp.Text = "周四" & zh

        Case 5
            grp.Text = "周五" & zh

        Case 6
            grp.Text = "周六" & zh

        
        Case Else
            grp.Text = zh
    End Select


    Next



测试却是一直错误,不知错在哪里?


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


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

Select Case cdate(zh).DayOfWeek

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/24 9:02:00 [只看该作者]

报什么错?贴出来

 

For Each zh As Date In DataTables("预约表").GetValues("日期", "日期 is not null") '增加分组


 回到顶部
帅哥哟,离线,有人找我吗?
堕落的后天
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:175 积分:1431 威望:0 精华:0 注册:2017/8/4 14:17:00
  发帖心情 Post By:2017/11/24 12:16:00 [只看该作者]


代码如下---没有报错--但是也没有分组---分组栏显示 default

Dim lvw As WinForm.ListView = e.Form.Controls("ListView2")
Dim rq As Date = e.Form.Controls("DateTimePicker3").Text
Dim rp As Date = rq.AddDays(6)


lvw.StopRedraw() '停止绘制
lvw.Groups.Clear() '清除原来的分组
lvw.Columns.Clear() '清除原来的列
lvw.Rows.Clear() '清除原来的行
lvw.Images.Clear() '清除原来的图片
Dim filter As String = "日期 >= #" & rq & "#  And 日期 <= #" & rp & "#  And 所属医生 = '" & _UserName  &  "' And  院区 = '" & _Usercangku &  "'          "
lvw.View = ViewMode.Details '显示模式为详细信息
Dim cls() As String = {"状态","时间段","病人姓名","预约项目")
Dim wds() As Integer = {70,100,80,80)
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) '指定列宽
Next




For Each zh As Date In DataTables("预约表").GetValues("日期","日期 is not null")'增加分组

    Dim grp As WinForm.ListViewGroup = lvw.Groups.Add()


    grp.Name = zh
Select Case cdate(zh).DayOfWeek

Case 0
            grp.Text = "周日" & zh
        Case 1
            grp.Text = "周一" & zh

        Case 2
            grp.Text = "周二" & zh


        Case 3
            grp.Text = "周三" & zh

        Case 4
            grp.Text = "周四" & zh

        Case 5
            grp.Text = "周五" & zh

        Case 6
            grp.Text = "周六" & zh

        
        Case Else
            grp.Text = zh
    End Select


    



    Next




For Each dr As DataRow In DataTables("预约表").Select(filter,"开始时,开始分")  
    Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
    r.Group = dr("开始时")
    For Each cl As String In cls '逐列取值
        r(cl) = dr(cl)
    Next
    
    r.CellUseRowStyle = False
    If dr("状态") = "已约" Then '用蓝底白字整行显示东正教国家
        r.Cells(0).BackColor = Color.LimeGreen
        r.Cells(0).ForeColor = Color.White
Else If dr("状态") = "提醒" Then
        r.Cells(0).BackColor = Color.IndianRed
        r.Cells(0).ForeColor = Color.White

        
    Else If dr("状态") = "取消" Then
        r.Cells(0).BackColor = Color.Red
        r.Cells(0).ForeColor = Color.White
    Else If dr("状态") = "到达" Then
        r.Cells(0).BackColor = Color.Magenta
        r.Cells(0).ForeColor = Color.White
    Else If dr("状态") = "过期" Then
        r.Cells(0).BackColor = Color.Gray
        r.Cells(0).ForeColor = Color.White
    Else
        
    End If

r.Tag= dr 
Next
lvw.ResumeRedraw() '恢复绘制

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/24 12:31:00 [只看该作者]

r.Group = dr("开始时")

 

改成

 

r.Group = dr("日期")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/24 12:31:00 [只看该作者]

如果还有问题做个例子发上来。

 回到顶部