У меня есть форма, где пользователь должен поставить несколько тиков тут и там, и когда он закончит, я хотел бы сохранить расположение этих тиков, чтобы я мог восстановить их в точном выравнивании, когда пользователь снова откроет форму , Нет ракетостроения. У меня трудные времена с этим, хотя. Форма представляет собой окно размером 788px x 574px, на котором есть поле для фотографий размера p4ox (pBox) (1035px x 1456px), поэтому окно изображения намного больше, и оно прокручивается при прокрутке формы пользователем. Галочка - это другой элемент управления картинкой (pb). Я думал, что этот код должен хранить местоположения:
calcX = pb.Left - pBox.Left;
calcY = pb.Top - pBox.Top;
И чтобы восстановить 'галочки' (проверьте, является ли объект, в котором я храню данные галочки):
pb.Left = pBox.Left + check.XPoint;
pb.Top = pBox.Top + check.YPoint;
Это вроде работы, но если пользователь повторно открывает форму в другом размере окна, отметка будет помещена за пределы цели. То же самое происходит, например, когда пользователь ставит галочку, когда pBox прокручивается до самого дна. Проблема в том, что pBox.Left / pBox.Top равен 0/0, не имеет значения, прокручивается форма или нет. Я должен принять во внимание выравнивание pBox по форме, но мне это не удается. Любая помощь приветствуется. Посмотрите на прикрепленные изображения, первое - когда pBox left / top равен началу формы, второе - когда pBox прокручивается вправо в форме, поэтому его Left / Top, вероятно, отрицательны к форме.
![pBox at form's beginning](https://i.stack.imgur.com/itawj.png)
![pBox scrolled to the right](https://i.stack.imgur.com/HaUBx.png)