以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]求助排列规律的代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33856)

--  作者:夕然
--  发布时间:2013/5/25 23:25:00
--  [求助]求助排列规律的代码

实在找不到数据出现的规律,特向各位求教 

假设我规定了3列,这个排序怎么排呢?

假设要按照窗口的变化来排列,动态规定有多少列,又怎么做呢?

谢谢各位老师 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:状态.table


图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2013-5-26 23:08:31编辑过]

--  作者:fjlclxj
--  发布时间:2013/5/26 0:08:00
--  
Dim w,h,j,w0,w1,h0,h1 As Integer
w = 80 \'控件宽
h = 50 \'控件高
w0=10 \'左右外边距
w1=5 \'左右内边距
h0=10 \'上外边距
h1=7 \'上下内边距
j= e.Form.Width-w0+w1
j=j\\(w+w1)
Dim drs As List(Of DataRow)
drs = DataTables("表a").Select("[状态] = \'在线\'")
For i As Integer = 1 To drs.Count
    If e.Form.ExistControl("online_Panel" & i) = True
        e.Form.RemoveControl("online_Panel" & i)
    End If
    Dim pl As WinForm.Panel
    pl = e.Form.CreateControl("online_Panel" & i, ControlTypeEnum.Panel)
    pl.Width = w
    pl.Height = h
    pl.Left = w0+((i-1) Mod j)*(w+w1)
    pl.Top =  h0+((i-1)\\j)*(h+h1)

    e.Form.Controls("Panel1").AddControl(pl)
    If e.Form.ExistControl("online_Panel" & i & "_" & drs(i-1)("用户")) = True
        e.Form.RemoveControl("online_Panel" & i & "_" & drs(i-1)("用户"))
    End If
    Dim pt As WinForm.Painter
    pt = e.Form.CreateControl("online_Panel_" & i & "_" & drs(i-1)("用户"), ControlTypeEnum.Painter)
    pt.Width = w
    pt.Height = h
    pt.Left= 0
    pt.Top = 0
    pt.BorderStyle = BorderStyle.Fixed3D
    pl.BackColor = color.pink
    e.Form.Controls("online_Panel" & i).AddControl(pt)
    Dim g As Graphics = pt.Graphics
    Dim fnt As New Font("黑体",10,FontStyle.Bold)  
    
    Dim s1 As String = drs(i-1)("用户")
    g.DrawString(s1,fnt,Brushes.black,10,10) \'定义启始为止
    g.DrawImage(getImage(drs(i-1)("图像")),10,30)
    
    pt.Repaint()
Next

--  作者:夕然
--  发布时间:2013/5/26 0:28:00
--  

你是我学习的偶像

 

谢谢你


--  作者:夕然
--  发布时间:2013/5/26 0:29:00
--  

我折腾一个晚上了。

做了多次的模型都没有成功

你的解决方法让我佩服


--  作者:don
--  发布时间:2013/5/26 10:22:00
--  
直接在表格上绘制头像就行
--  作者:夕然
--  发布时间:2013/5/26 11:15:00
--  

谢谢大家的帮助,我已经搞定了,甚至可以实现更多的功能了

GDI果然是一个强大的工具

给大家秀个图

 


图片点击可在新窗口打开查看此主题相关图片如下:oiu.gif
图片点击可在新窗口打开查看

--  作者:hanxuntx
--  发布时间:2013/5/26 12:04:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:dfdfd.gif
图片点击可在新窗口打开查看

--  作者:泡泡
--  发布时间:2013/5/26 12:09:00
--  
牛  空了也要学习这个方法
--  作者:夕然
--  发布时间:2013/5/26 12:22:00
--  

你的这个更牛哦,

鼠标移动到那里之后,那个panel会动是怎么搞的哦


--  作者:fjlclxj
--  发布时间:2013/5/26 13:26:00
--  
MouseEnter:
If left(e.Sender.name,13) = "online_Panel_"
    e.Sender.ToolTip = "点击可查看会员信息!"
    e.Sender.BorderStyle = BorderStyle.Fixed3D
End If

MouseLeave:

If left(e.Sender.name,13) = "online_Panel_"

    e.Sender.BorderStyle = BorderStyle.FixedSingle

End If