Я согласен с другими, что вы, вероятно, не должны этого делать, но если вам нужно, продолжайте читать.
Вы можете переопределить метод SetBoundsCore и предотвратить любое перемещение. Мы используем это для предотвращения изменения размеров по вертикали в некоторых реализациях UserControl (например, в тех, которые содержат ComboBox или другой элемент управления с фиксированной высотой), но оно также отвечает за изменение расположения.
Начинается следующее:
protected override void SetBoundsCore(
int x, int y, int width, int height, BoundsSpecified specified)
{
x = this.Location.X;
y = this.Location.Y;
//...etc...
base.SetBoundsCore(x, y, width, height, specified);
}