我有以下情况,我想定位Button1
在正下方并水平对齐到Button 2
,但仍然保持Button1
在groupBox1
,而Button 2
在groupBox2
:
我看过几篇关于PointToClient()
and的帖子PointToScreen()
,但仍然无法在不同的容器之间正确翻译——groupBox1
在groupBox2
这种情况下。
我已经尝试了以下代码的一些变体(例如,在调整表单大小时尝试重新定位按钮),但我仍然对它的工作原理感到困惑。
具体来说,我似乎不清楚control
我应该调用PointToScreen()
哪个,以及我应该将哪些参数传递给该方法以实现我上面描述的内容。
private void Form1_Paint(object sender, PaintEventArgs e)
{
var btn2Pos = button2.PointToScreen(button2.Location);
button1.Location = button1.PointToClient(btn2Pos);
}
解决这个问题的最简单方法是什么?
旁注,这样做的原因:
我希望能够禁用groupBox2
,以及其中的所有控件,但仍保留某些控件,例如button 1
启用,即使它们相对于button 2
.