Привязка кнопок WinForms (.NET) при максимизации - PullRequest
0 голосов
/ 10 апреля 2009

Хорошо, я гуглил, но, может быть, я странно ввел свой поиск. : /

У меня есть приложение VB.NET WinForms. У меня есть свойства привязки, установленные для всех элементов управления, так что он изменит размеры всех элементов управления, чтобы они выглядели прилично , когда форма развернута. (Тем не менее, пока не удосужился изменить размер вручную).

В любом случае, проблема:

Я иду, чтобы установить те же свойства для кнопки (тестирование с одной кнопкой на данный момент) в основной форме / изображении графического интерфейса. Когда я иду, чтобы запустить программу через F5, она выглядит прилично. Но когда я максимизирую форму, вся кнопка покрывает больше, чем должна.

Я сделал скриншоты этой формы, чтобы вы могли видеть, о чем я говорю. : /

До: http://zack.scudstorm.com/before.png
После: http://zack.scudstorm.com/after.png

Какие еще свойства нужно установить, чтобы кнопки правильно отображались? : / (Кнопки идут над полями, например, «1-1», «2-3» и т. Д.

Спасибо,
-Zack

Ответы [ 2 ]

3 голосов
/ 10 апреля 2009

Похоже, у вас есть привязка вверху слева и внизу справа, когда то, что вы хотите, просто вверху слева.

Редактировать: если это просто изображение, которое не изменяется при изменении формы волны, то вообще не привязывайте свои кнопки. Просто поместите их туда, куда они идут. Если вы масштабируете изображение, то я бы либо обнаружил щелчки на изображении и выполнил вычисление по масштабированию, либо выполнил вычисление по масштабированию и установил свои кнопки в коде в событии Form.OnResize.

2 голосов
/ 10 апреля 2009

Похоже, что ваша цель - уметь обрабатывать клики на "компьютерах" ...

Один из вариантов, который может быть полезен для такого рода задач, - это создание растрового изображения с наложением (не отображается, но точно такого же размера, что и исходное растровое изображение), в котором используются разные цвета для представления всех областей, на которые можно нажать (например, (R=0,G=0,B=0) для компьютера 0, (0,0,1) для компьютера 1 и т. д.)

Вы даже можете генерировать этот растр несколько автоматически без особых проблем (если у вас есть режим, в котором вы можете щелкнуть верхний левый, а затем нижний правый углы изображения, чтобы определить новый регион)

При щелчке мыши вы можете проверить пиксель в масштабированных координатах положения мыши в оверлее и определить, что соответствует их щелчку. Это может быть намного проще, чем создание множества элементов управления, и намного проще иметь интерактивные области, которые не являются прямоугольными.

...