При начале перетаскивания запомни координаты кнопки, если перетащил на B, то сделай копию и поставь в предыдущее место.
Так как кнопка у нас класс а не структура, то мы не можем просто скопировать методом A = B; ибо тип класс ссылочный и все что сделает текущая операция это создаст ещё одну ссылку на тот же обьект. Нужно именно перенести значения в
новый обьект,примерно так:
var copyBtn = new Button
{
// А тут перенести нужные свойства.
Location = myBtn.Location,
Text = myBtn.Text,
};
// И наверное тоже главное что б кнопка делала тоже самое что и та которую копируем.
copyBtn.Click += //тут просто название метода на которую подписана кнопка, если метод в этом контексте. (myBtn_OnClick).
// В завершении мы должны добавить кнопку на ту панель (B) припустим у нее имя panel1
panel1.Controls.Add(copyBtn);
// Ну а тут верни кнопку обратно.
myBtn.Location = SaveLocation;
В коде могут быть ошибки так как на формах я уже давненько не пишу, да и этот код написан прямо тут, а не в студии с Intelisence :)
Надеюсь поможет