Foxtable(狐表)用户栏目专家坐堂 → 在窗体上加入表格的尺寸问题


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

主题:在窗体上加入表格的尺寸问题

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
在窗体上加入表格的尺寸问题  发帖心情 Post By:2016/7/21 8:53:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:capture.png
图片点击可在新窗口打开查看
如图这样的窗体上的表格。

由于尺寸的问题,边际总会有一些灰色的条。

 

我的问题是怎么消除这个条?

 

第二,考虑到字段的长度,用户要求最好能左右手动调整表的尺寸,但是左上角的距离不变(就是位置不变)

这个怎么设置?


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/21 10:25:00 [显示全部帖子]

这个命令是考齐右侧的边际,当表格宽度小于外框的时候,把最后一列扩宽。

 

当表格大于外框的时候则不生效。

 

貌似表格的尺寸被限定在控件的宽度范围了。控件的范围可以手动调整么

我找到了以前的一个帖子,貌似稍微修改下代码就可以调整宽度

 

If e.Button = MouseButtons.Left Then
    Select Case e.sender.name
        Case "Button1","Button2","Button3" '列出要移动的控件的名称
            Dim lbl As WinForm.Label = e.Form.Controls("info")
            Dim ctl As WinForm.Control  = e.sender
            If lbl.text = "" Then
                Return
            End If
            Dim vals() As String = lbl.text.Split("|")
            If ctl.name <> vals(0) Then
                Return
            End If
            Dim x As Integer = e.x - vals(3)
            Dim y As Integer = e.y - vals(4)
            ctl.SetBounds(ctl.Left + x ,ctl.Top + y,ctl.Width,ctl.Height)
    End Select
End If

 

If e.Button = MouseButtons.Left Then
    Select Case e.sender.name
        Case "Button1","Button2","Button3" '列出要移动的控件的名称
            Dim lbl As WinForm.Label = e.Form.Controls("info")
            With e.sender
                lbl.text = .name & "|" & .Left & "|" & .Top & "|" & e.x & "|" & e.y
            End With
    End Select
End If


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/21 10:29:00 [显示全部帖子]

有一个不明白的地方就是:

这两段代码一个是在mouse move触发,一个是在mouse down触发。

里面都用到了LBL的代表鼠标位置变量。

这个在不同程序里面的变量可以传递?


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/21 10:35:00 [显示全部帖子]

这个是狐表大大发的分享程序,我查了下,没有定义全局变量。

我没仔细看,其实他是把这个位置保存在一个文本里面

 


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

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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/21 10:49:00 [显示全部帖子]

没有吧,Dim vals() As String = lbl.text.Split("|")
这里没有定义全局变量啊


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


加好友 发短信
等级:五尾狐 帖子:1030 积分:8973 威望:0 精华:0 注册:2015/8/12 16:28:00
  发帖心情 Post By:2016/7/21 11:26:00 [显示全部帖子]

我适当修改了下代码,表格可以随意调整宽度了:

    Select Case e.sender.name
        Case "Panel1" '列出要移动的控件的名称
            Dim lbl As WinForm.Label = e.Form.Controls("info")
            Dim ctl As WinForm.Control  = e.Sender
            Dim ctl2 As WinForm.Control=e.Form.Controls("Table2")
            If lbl.text = "" Then
                Return
            End If
            Dim vals() As String = lbl.text.Split("|")
            If ctl.name <> vals(0) Then
                Return
            End If
            Dim x As Integer = e.x - vals(3)+590
            Dim y As Integer = e.y - vals(4)+590
           
            ctl.SetBounds(ctl.Left  ,ctl.Top , x+90 ,ctl.Height) 
            ctl2.SetBounds(ctl2.Left  ,ctl2.Top , x ,ctl2.Height)
    End Select
End If

 

 


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

 

注意表格是不可以调整宽度,因为单机会变成选择单元格。所以我在外面加了一个panel,点击表格外面的框就可以调整宽度


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

图片点击可在新窗口打开查看此主题相关图片如下:capture.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/7/21 11:27:30编辑过]

 回到顶部