Foxtable(狐表)用户栏目专家坐堂 → 请测试下listniew 有没有这样的问题


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

主题:请测试下listniew 有没有这样的问题

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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
请测试下listniew 有没有这样的问题  发帖心情 Post By:2014/2/18 18:10:00 [只看该作者]

  Dim lvw As WinForm.ListView = e.Form.Controls("ListView1")
Dim fnt As New Font("微软雅黑",9)
lvw.font = fnt
    lvw.StopRedraw() '暂停绘制
    lvw.Columns.Clear() '清除原来的列
    lvw.Rows.Clear() '清除原来的行
    lvw.Images.Clear() '清除原来的图片
    lvw.View = ViewMode.Details '显示模式为详细信息
    lvw.GridLines = True '显示网格线
    Dim cls() As String = {"销售日期","销售单号","会员卡号","姓名","会员等级","积分否","积分已送","赠送积分","销售金额"} '定义列名
    Dim wds() As String = {100,100,100,50,50,40,40,30,30} '定义列宽
    For i As Integer = 0 To  cls.Length - 1  '增加列
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Text = cls(i) '指定列标题
        c.Name = cls(i) '指定列名
        c.Width = wds(i) '指定列宽
    Next   
    If dt.DataRows.Count > 0 Then
        For Each dr As DataRow In datables("xxx").DataRows
            Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
            For Each cl As String In cls '逐列取值
                r(cl) = dr(cl)
            Next
        Next
        lvw.ResumeRedraw()
这样没有问题可以生成


但是这样写 就生成不了 

forms("xxx").show
if forms("xxx").opened then
Dim lvw As WinForm.ListView = forms("xxx").Controls("ListView1")
Dim fnt As New Font("微软雅黑",9)
lvw.font = fnt
    lvw.StopRedraw() '暂停绘制 
    lvw.Columns.Clear() '清除原来的列
    lvw.Rows.Clear() '清除原来的行
    lvw.Images.Clear() '清除原来的图片
    lvw.View = ViewMode.Details '显示模式为详细信息
    lvw.GridLines = True '显示网格线
    Dim cls() As String = {"销售日期","销售单号","会员卡号","姓名","会员等级","积分否","积分已送","赠送积分","销售金额"} '定义列名
    Dim wds() As String = {100,100,100,50,50,40,40,30,30} '定义列宽
    For i As Integer = 0 To  cls.Length - 1  '增加列
        Dim c As WinForm.ListViewColumn = lvw.Columns.Add()
        c.Text = cls(i) '指定列标题
        c.Name = cls(i) '指定列名
        c.Width = wds(i) '指定列宽
    Next   
    If dt.DataRows.Count > 0 Then
        For Each dr As DataRow In datables("xxx").DataRows
            Dim r As  WinForm.ListViewRow =  lvw.Rows.Add() '增加一行
            For Each cl As String In cls '逐列取值
                r(cl) = dr(cl)
            Next
        Next
        lvw.ResumeRedraw()
end if

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


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

 呃,关键是这两句代码

forms("xxx").show
if forms("xxx").opened then

 如果你的xxx窗口是模式窗口,后面的代码会在你窗口关闭的时候才会执行的。
[此贴子已经被作者于2014-2-18 19:27:46编辑过]

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


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2014/2/19 7:53:00 [只看该作者]

以下是引用有点甜在2014-2-18 19:28:00的发言:
 呃,关键是这两句代码

forms("xxx").show
if forms("xxx").opened then

 如果你的xxx窗口是模式窗口,后面的代码会在你窗口关闭的时候才会执行的。

明白了,我就是用的模式窗口.看来这个模式窗口的用法 类似于这样 还是改成独立窗口,在转成模式窗口




 回到顶部