У меня проблема с алгоритмом перетаскивания элемента управления Winforms, помещенного в лист Excel. При перетаскивании он перемещается от курсора к сторонам листа назад и вперед, а после остановки трясется, как лист.
ControlSite controlSite;
double xOffset, yOffset;
private void Control_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
xOffset = e.X;
yOffset = e.Y;
}
}
private void Control_MouseMove(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Left) {
controlSite.Top += e.Y - yOffset;
controlSite.Left += e.X - xOffset;
}
}
Похоже, что при установке позиции элемента управления событие перемещения мыши было вызвано снова, что нарушает процесс позиционирования все дальше и дальше.
PS. Извините, если мой английский не идеален.