以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何获取RecordGrid显示的区域高度  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=62829)

--  作者:jspta
--  发布时间:2015/1/8 16:41:00
--  如何获取RecordGrid显示的区域高度
显示区域指:列名实际的区域,我想通过获取相关高度使RecordGrid能够显示完整,并且不会露出灰色的无效区域。换句话说,就是自动适应RecordGrid的高度

有没有办法做到?

--  作者:有点甜
--  发布时间:2015/1/8 16:43:00
--  

取出grid对象,然后设置。

 

Dim g As Object = e.Form.Controls("RecordGrid1").BaseControl


--  作者:lsy
--  发布时间:2015/1/8 16:45:00
--  
空白区显示白色,就差不多了,行高太大,也难看。
--  作者:jspta
--  发布时间:2015/1/8 16:53:00
--  
以下是引用lsy在2015-1-8 16:45:00的发言:
空白区显示白色,就差不多了,行高太大,也难看。
主要为了自动适应模式窗口大小,留太多空白不太好看,能做到自动适应是最好的。


--  作者:jspta
--  发布时间:2015/1/8 17:54:00
--  
搞定,以下代码获取非显示区域的高度,配合Form.SetBound就能设置了。不知道为什么,form.height直接设置无效,需要调用SetBound。
Dim h As Integer = 0
Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = Rcdgd.BaseControl
For Each cr As C1.Win.C1FlexGrid.Row In grid.Rows
      h += cr.HeightDisplay
Next
h = Rcdgd.Height - h + 35 \'会留空白,加35后就没有了。
With Form
        .SetBounds(.Left, .Top, .Width, .Height - h)
End With