Конференция ".Net" » AutoScroll: как заставить его работать [C#, WinXP]
 
  • Галинка © (01.03.07 11:30) [0]
    не только вниз-вправо, но и наверх-влево?

    Т.е. когда объект находится правее или ниже клиентской области контрола, то автокролл автоматически увеличивает форму и добавляет линейки прокрутки. А вот когда выше или левее, то нет ((. Объект просто теряется. Как обойти или что надо добавить в реализацию, чтобф это исправить?
  • Александр Иванов © (01.03.07 16:36) [1]
    Решение "в лоб" - проверять координаты контролов, найти минимумы и переместить все.
  • clickmaker © (02.03.07 10:39) [2]

    > А вот когда выше или левее, то нет

    хм... а когда такое может быть?
    разве изначально нельзя задать точку отсчета с 0,0?
  • Галинка © (02.03.07 11:39) [3]

    > clickmaker ©   (02.03.07 10:39) [2]

    ситуация следующая. по клику на форме там появляется картинка/иконка. потом  ее можно передвигать. вот когда при перемещении ее "кидают" правее или ниже формы, то все впорядке, автоскрол увеличивает форму, а вот когда левее или выше, то (( не работает ((


    > Александр Иванов ©   (01.03.07 16:36) [1]

    т.е. при перетаскивании проверить координаты, увеличить размер формы на модуль смещения по х и у, и все контролы перерисовать потом? а это не слишком долго будет? а то контролов может быть штук 40, да еще при перемещении на MouseUp идет обновление хмл и тривью, который этот хмл отображает. Думаю все повиснет на долго....
  • clickmaker © (02.03.07 12:00) [4]

    > [3] Галинка ©   (02.03.07 11:39)

    а как в этом случае должен выглядеть скролл? вернее, его позиция
    что-то мой неокрепший мозг не может представить
    Если картинка изначально больше формы, то понятно, она уедет вверх, скролбар - вниз.
    А вот если меньше?
  • Александр Иванов © (02.03.07 12:07) [5]
    > [3] Галинка ©   (02.03.07 11:39)
    > ситуация следующая. по клику на форме там появляется картинка/иконка.
    > потом  ее можно передвигать. вот когда при перемещении ее
    > "кидают" правее или ниже формы, то все впорядке, автоскрол
    > увеличивает форму, а вот когда левее или выше, то (( не
    > работает ((

    При перемещении проверять чтобы в свойстве Location не появилось отрицательное число.
  • Галинка © (02.03.07 14:42) [6]
    Александр Иванов ©   (02.03.07 12:07) [5]

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

    clickmaker ©   (02.03.07 12:00) [4]

    вопрос конечно интересный. Наверное скрол должен уезжать вниз. А Т.е. уехавший вниз относительно актуальной картинки скрол и будет признаком, что вверху что-то есть. Если не права то ай-ай-ай ((
  • default © (02.03.07 19:21) [7]
    глупышка
  • default © (02.03.07 23:08) [8]
    тебе уже сказали что просто надо не давать перемещать объекты левее и выше границ
    штука в том, что правого  и нижнего скроллинга достаточно чтобы получить область любой высоты и ширины
    у тебя должны быть ещё возможнолсть перетаскивания твоих картинок группой и всё будет нормально
    любое расположение картинок без труда можно сделать
 
Конференция ".Net" » AutoScroll: как заставить его работать [C#, WinXP]
Есть новые Нет новых   [118830   +87][b:0][p:0]