如何将面板移动到多个位置之一

How to move a panel to one of many locations

我正在尝试将面板移动到与我单击的标签相同的位置,但我无法弄清楚。

我已经让它与特定代码一起工作,比如 "Stats1.Location = wood.Location;" 但我最多需要这样做 10 次,所以我一直在努力让发件人变得更有活力。

private void Wood_Click(object sender, EventArgs e)
        {
            Stats();
        }

void Stats() 
        {
            var X = sender;
            Panel1.Location = X.Location;
        }

我希望它能像 Visual Basic 那样工作,它会使用 "sender.Location" 代替 "wood.Location" 但它只是说 "the name 'sender' does not exist in the current context".

无需为每个标签处理程序复制代码(使其调用 Stats),只需 select 每个标签并使其 Click 事件指向如下所示的通用处理程序:

private void All_Labels_Click(object sender, EventArgs e)
{
        Label lbl = (Label)sender;
        Panel1.Location = lbl.Location;
}

要清楚,在属性窗格中,单击闪电图标,找到“单击”条目,然后将右侧的下拉列表更改为 All_Labels_Click。