Я немного застрял здесь. Я пытаюсь переместить 2 формы одновременно, не используя OnMove, LocationChanged, Docking и т. Д.
Единственный способ взаимодействия с их местоположениями - переопределить WndProc. Что-то, что могло бы быть полезным, - то, что форма A является владельцем формы B. Поэтому всякий раз, когда A перемещается, я также хочу перемещать B. Не в том же месте, но на том же расстоянии.
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x0084)
{
Form[] temp = this.OwnedForms;
if(temp.Length > 0)
{
/* moving temp[0] to the same ratio as this form */
}
m.Result = (IntPtr)2;
return;
}
base.WndProc(ref m);
}
И A, и B имеют один и тот же WndProc, поскольку они представляют собой 2 объекта из одного класса.