Позиционирование элемента управления на другой элемент управления в форме - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть форма, где пользователь должен поставить несколько тиков тут и там, и когда он закончит, я хотел бы сохранить расположение этих тиков, чтобы я мог восстановить их в точном выравнивании, когда пользователь снова откроет форму , Нет ракетостроения. У меня трудные времена с этим, хотя. Форма представляет собой окно размером 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

pBox scrolled to the right

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...