c#从创建该类的主窗体中关闭从和实例类打开的窗体

时间:2010-12-23 17:47:49

标签: c# winforms

我在填写表格时遇到了困难!

我在表单上动态创建按钮,并且需要知道它们是否完全可见,或者我是否需要增长表单以及使所有按钮完全可见的方向。

我不想使用autosize属性,因为我需要控制布局。

那么如何判断动态创建的控件边界是否在表单的范围内?

感谢

这是一款.Net 4经典表格app。

2 个答案:

答案 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;
}