我在填写表格时遇到了困难!
我在表单上动态创建按钮,并且需要知道它们是否完全可见,或者我是否需要增长表单以及使所有按钮完全可见的方向。
我不想使用autosize属性,因为我需要控制布局。
那么如何判断动态创建的控件边界是否在表单的范围内?
感谢
这是一款.Net 4经典表格app。
答案 0 :(得分:1)
您可以添加按钮,不能比较容器的宽度与新添加的按钮的左+宽度属性吗?
答案 1 :(得分:1)
将按钮添加到控件集合时,要查看它是否可见,请检查表单边界上的包含 - Form.Bounds.Contains(button.Bounds));
。如果返回false,则需要增加表单。下面是一些表单增长的基本代码,它不一定会产生最漂亮的输出,也不一定是最好的方法,只是为了让你快速了解它是如何实现的。
// Add the control
form.Controls.Add(button);
var formBounds = form.Bounds;
var controlBounds = button.Bounds;
if (!formBounds.Contains(controlBounds))
{
formBounds.Left = Math.Min(controlBounds.Left, formBounds.Left);
formBounds.Right = Math.Max(controlBounds.Right, formBounds.Right);
// Do similar for top and bottom this will ensure your button is visible
form.Bounds = formBounds;
}