以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  这段代码有啥问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=56949)

--  作者:jianjingmaoyi
--  发布时间:2014/9/15 21:19:00
--  这段代码有啥问题?
Dim tab As WinForm.TabControl
tab = forms("我的导航").CreateControl("Tab1", ControlTypeEnum.TabControl)
tab.Dock = Windows.Forms.DockStyle.Fill
tab.Font = New Font("微软雅黑", 10)
forms("我的导航").AddControl(tab)

Dim Arys As List(Of String())
Dim Products As List(Of String)
Products = DataTables("功能导航").GetValues("功能区")
For Each Product As String In Products
    Dim pg As WinForm.TabPage
    pg = tab.TabPages.Add(Product , Product & "  →")
    pg.BackColor = Color.WhiteSmoke
    Dim dr As DataRow= DataTables("功能导航").Find("功能区=\'" & Product & "\'")
    If dr IsNot Nothing Then
        pg.Image = GetImage(dr("分类图标"))
    End If
    
    Dim Customers As List(Of String)
    Customers = DataTables("功能导航").GetValues("功能组","功能区=\'" & Product & "\'","序号")
    For Each Customer As String In Customers
        
        Dim lvw As WinForm.ListView
        lvw = forms("我的导航").CreateControl(Customer, ControlTypeEnum.ListView)
        lvw.Dock = Windows.Forms.DockStyle.Fill
        lvw.Font = New Font("微软雅黑", 10)
        
        pg.AddControl(lvw)
        
        lvw.StopRedraw() \'暂停绘制
        lvw.Groups.Clear
        lvw.Rows.Clear() \'清除原来的行
        lvw.Images.Clear() \'清除原来的图片
        lvw.View = ViewMode.LargeIcon
        lvw.Images.LargeSize = New Size(48, 48) \'定义大图标尺寸
        
        Dim vg As WinForm.ListViewGroup = lvw.Groups.Add() \'增加分组
        vg.Name = Customer
        vg.Text = "☆☆☆" & Customer & "☆☆☆"
        
        
        
        
        Arys = DataTables("功能导航").GetValues("模块名称|模块标题|模块图标","功能区=\'" & Product & "\'And 功能组=\'" & Customer & "\'","序号")
        For Each Ary As String() In Arys
            Dim key As String = Ary(2)
            lvw.Images.AddLargeImage(key, key) \'添加照片,直接用文件名作为图片键值
            Dim vr As WinForm.ListViewRow = lvw.Rows.Add() \'增加一行
            vr.Group = vg.Name
            vr.Name = Ary(0)
            vr.Text = Ary(1)
            vr.ImageKey = key
        Next
lvw.ResumeRedraw() \'恢复绘制
    Next
Next

不能分组
[此贴子已经被作者于2014-9-15 21:19:28编辑过]

--  作者:有点甜
--  发布时间:2014/9/15 21:23:00
--  

 什么意思?红色代码?重复清除?

 

        Dim lvw As WinForm.ListView

        lvw = forms("我的导航").CreateControl(Customer, ControlTypeEnum.ListView)
        lvw.Dock = Windows.Forms.DockStyle.Fill
        lvw.Font = New Font("微软雅黑", 10)
        
        pg.AddControl(lvw)
        
        lvw.StopRedraw() \'暂停绘制
        lvw.Groups.Clear
        lvw.Rows.Clear() \'清除原来的行
        lvw.Images.Clear() \'清除原来的图片
        lvw.View = ViewMode.LargeIcon
        lvw.Images.LargeSize = New Size(48, 48) \'定义大图标尺寸

--  作者:有点甜
--  发布时间:2014/9/15 21:24:00
--  
 请最好做个例子,或者截图说明什么问题
--  作者:jianjingmaoyi
--  发布时间:2014/9/15 21:30:00
--  
我想在每一个页签中加入一个listniew  并且进行分组
--  作者:有点甜
--  发布时间:2014/9/15 21:32:00
--  
以下是引用jianjingmaoyi在2014-9-15 21:30:00的发言:
我想在每一个页签中加入一个listniew  并且进行分组

 

那你现在问题是什么?你看2楼代码,你的添加和清楚,应该放在第一个循环里面,第二个循环外面


--  作者:jianjingmaoyi
--  发布时间:2014/9/15 21:36:00
--  
我第一个循环是添加页签 第二个循环是添加listniew的呀
--  作者:jianjingmaoyi
--  发布时间:2014/9/15 21:39:00
--  
是我错了 甜总你是对的