C# UserControl. VerticalScroll. Значение, не устанавливаемое

Раньше я был крайне осторожен с введением зависимостей в системы, но теперь я обнаружил, что зависимости не имеют большого значения. Современные операционные системы поставляются с менеджерами пакетов, которые часто могут автоматически разрешать зависимости или, по крайней мере, позволяют администраторам легко устанавливать то, что необходимо. Например, Boost доступен в Gentoo-Postage как dev-libs / boost и в портах FreeBSD как devel / boost.

Современное программное обеспечение с открытым исходным кодом много строит на других системах. В недавнем исследовании , отслеживая зависимости пакетов FreeBSD, мы установили, что пакеты из 12 357 портов в нашей системе FreeBSD 4.11 имели в общей сложности 21 135 зависимостей библиотеки; то есть, для компиляции им требовалась библиотека, отличная от 52 библиотек, которые являются частью базовой системы. Зависимости библиотек включали 688 различных библиотек, в то время как число различных внешних библиотек, используемых в одном проекте, варьировалось от 1 до 38, при значении режима 2. Кроме того, 5117 проектов использовали по крайней мере одну внешнюю библиотеку, а 405 проектов использовали 10 или более ,

В конце концов ответ на ваш вопрос будет получен в результате анализа затрат и выгод. Преимущество повторного использования зрелой, широко используемой, проверенной и протестированной библиотеки, такой как Boost, и больше, чем низкая и падающая стоимость зависимости? Для любого нетривиального использования возможностей Boost ответ заключается в том, что вы должны пойти дальше и использовать Boost.

5
задан Robert Gowland 17 April 2009 в 12:56
поделиться

2 ответа

I was having the same problem and came upon the solution in some dev forum. After setting the VerticalScroll.Value, you have to call PerformLayout() to make the scrolling control update. So do this:

scrollingcontrol.VerticalScroll.Value = top;
scrollingcontrol.PerformLayout();

This makes more sense than setting .Value twice, though it seems to have the same effect.

20
ответ дан 18 December 2019 в 06:51
поделиться

Я столкнулся с той же проблемой, и я нашел решение на веб-странице MSDN (я не могу публиковать ссылки, потому что я новый пользователь).

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

int newVerticalScrollValue = 
         pDashboard.VerticalScroll.Value - pDashboard.VerticalScroll.SmallChange;

pDashboard.VerticalScroll.Value = newVerticalScrollValue;
pDashboard.VerticalScroll.Value = newVerticalScrollValue;
3
ответ дан 18 December 2019 в 06:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: