Forms("窗口1").StopRedraw()
Dim onls As new List(of String)
Dim lbpanel As WinForm.Panel=Forms("窗口1").Controls("列表")
For Each con As WinForm.Control In lbpanel.Children
If con.name.StartsWith("Panel_") And con.Visible Then
onls.Add(con.name)
End If
Forms("窗口1").RemoveControl(con.name)
Next con
Dim groups As List(Of String)
Dim Customers As List(Of String())
Dim pl As WinForm.Panel
Dim la As WinForm.Label
Dim pt As WinForm.Painter
Dim i,j,k As Integer
Dim s1 As String
Dim gr As Graphics
groups = DataTables("分组表").GetUniqueValues("组名<>''","组名")
For Each g As String In groups
Customers=DataTables("用户列表").GetUniqueValues("分组='" & g & "'","用户名","昵称","头像","ID","状态")
la = Forms("窗口1").CreateControl("label_" & g, ControlTypeEnum.label)
la.Dock = System.Windows.Forms.DockStyle.top
la.text=g & "[" & customers.Count & "]"
la.AutoSize=False
la.TextAlign=ContentAlignment.MiddleLeft
Forms("窗口1").Controls("列表").AddControl(la)
pl = Forms("窗口1").CreateControl("Panel_" & g, ControlTypeEnum.Panel)
pl.Dock = System.Windows.Forms.DockStyle.top
pl.BorderStyle=BorderStyle.none
i=customers.Count*20
pl.Height=i
pl.Visible=onls.Contains("Panel_" & g)
Forms("窗口1").Controls("列表").AddControl(pl)
For Each c() As String In customers
pt =Forms("窗口1").CreateControl("custom_" & c(3), ControlTypeEnum.Painter)
pt.height=20
pt.BorderStyle = BorderStyle.none
pt.Dock = System.Windows.Forms.DockStyle.top
pl.AddControl(pt)
s1=c(0) & "(" & c(1) & ")"
gr= pt.Graphics
Dim fnt As New Font("黑体",10,FontStyle.Bold)
gr.DrawString(s1,fnt,Brushes.black,30,2) '定义启始为止
If c(2) IsNot Nothing Then
If c(4)="在线" Then
gr.DrawImage(getImage(c(2)),2,2,16,16)
Else
System.Windows.Forms.ControlPaint.DrawImageDisabled(gr,getImage(c(2)), 2, 2, Color.Transparent)
End If
If c(4)="禁用" Then
Dim pn As New Pen(Color.black,3)
gr.DrawLine(pn,2,10,18,10)
End If
End If
pt.Repaint()
Next c
Next g
Forms("窗口1").ResumeRedraw()