题目要求,初始时,DataGridView 控件是隐藏的,当点确定查询后,DataGridView 控件显示。
我是这样实现的,初始化时,先隐藏(panel2.Visible=false;)
事件:点击查询时显示,panel2.Visible=true,
同时 设置Form窗体高度为:
this.Height = panel1.Height + panel2.Height ;
问题就是这样里了,这样设置后 panel2 显示不全,好像是忽略了Border和标题栏的高度。
this.ClientSize.Height= panel1.Height + panel2.Height ; 会报错,ClientSize.Height不能赋值
this.Height = panel1.Height + panel2.Height +Border.Height+Title.Height; 也不行。
请问有方法得到Border和标题栏的高度吗?或者有其他方法来解决呢? 非常感谢。

------解决思路----------------------
var rect = this.ClientSize;
rect.Height= panel1.Height + panel2.Height ;
this.ClientSize = rect;
------解决思路----------------------
算高度是一个方法,但是同学,你这样搞得结果是你如果改变了form的大小,感觉只有form变,里面的控件大小不会变。
我推荐一种解决方法:在每个控件的layout属性中,anchor控制的是你相对于form的位置(自己理解)。
比如你的panel1,anchor设置,top,left,在最大化或者进行改变的时候,相对于form上方和左方的距离会固定不变,然后根据表格的大小改变你的panel1大小
panel2,anchor设置top,left,相对于form上方和左方固定不变。
以上,如果你能将panel2固定于form的相对固定位置的话,那么只要设置好panel2的初始坐标,怎么变都应该不会遮蔽。