在flowlayoutpanel的用户控件中找到按钮控件的位置
本文关键字:控件 按钮 位置 用户 flowlayoutpanel | 更新日期: 2023-09-27 18:17:13
我在windows窗体的flowlayoutpanel中有20个用户控件。
每个用户控件都有一个按钮。
我想找到flowlayoutpanel上每个按钮的位置。如何找到按钮的X和Y坐标?
我可以像这样访问按钮:
foreach (Control ctrl in this.pnlContainer.Controls.Find("btnPrint",true))
{
Button c = ctrl as Button;
if (c != null)
{
logger.Info("x: "+c.Location.X + ",y: "+c.Location.Y,c);
}
}
然而,x和y坐标总是相同的。
谢谢!
如果按钮在所有UC中的相同位置,则所有UC中的按钮的x y将相同。你得到的位置是相对于UC而不是表单的。
我想你可以在这里找到它
获取控件's在窗体上的位置试试这个代码
foreach (Control ctrl in this.flowLayoutPanel1.Controls)
{
foreach (Control item in ctrl.Controls.Find("button1", true))
{
Point pointOnForm = new Point(0, 0);
Control Btn = item;
for (; Btn.Parent != null && Btn.Parent.GetType() != typeof(Form); Btn = Btn.Parent)
{
pointOnForm.Offset(Btn.Location);
}
//label2.Text += pointOnForm + ",";
}
}