Как переместить панель в одно из многих мест - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь заставить панель переместиться в то же место, что и ярлык, который я нажимаю, но не могу понять.

Я получил его для работы с конкретным кодом, как "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», но он просто говорит, что «имя« sender »не существует в текущем контексте».

1 Ответ

0 голосов
/ 28 июня 2019

Вместо того, чтобы дублировать код для каждого обработчика меток (заставляя его вызывать Stats), просто выберите каждую метку и сделайте так, чтобы ее событие Click указывало на общий обработчик, подобный показанному ниже:

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

Чтобы было ясно, на панели свойств щелкните значок молнии, найдите запись Click, затем измените раскрывающийся список справа на All_Labels_Click.

...