none
Баг HScroolBar VScroolBar VS8 RRS feed

  • Вопрос

  • Version 8.0.50727.42  (RTM.050727-4200)
    Microsoft .NET Framework
    Version 2.0.50727 SP2
    Installed Edition: Professional
    Microsoft Visual C# 2005   77626-009-0000007-41114
    Microsoft Visual C# 2005
    Security Update for Microsoft Visual Studio 2005 Professional Edition - ENU (KB925674)   
    This Security Update is for Microsoft Visual Studio 2005 Professional Edition - ENU. \n
    If you later install a more recent service pack, this Security Update will be uninstalled automatically. \n
    For more information, visit http://support.microsoft.com/kb/925674

    Создаем HScroolBar (или VScroolBar)  и TextBox

    прописываем метод

    private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
            {
                textBox1.Text = hScrollBar1.Value.ToString();
            }

    Значения

    hScrollBar1.Maximum=100

    hScrollBar1.Minimum=0

    hScrollBar1.SmallChange=1

    hScrollBar1.LargeChange=10

    Запускаем. Тянем ползунок в конец в текстовом поле значение 91

    Меняем hScrollBar1.LargeChange=5

    Запускаем. Тянем ползунок в конец в текстовом поле значение 96

    Меняем hScrollBar1.LargeChange=2

    Запускаем. Тянем ползунок в конец в текстовом поле значение 99

    Меняем hScrollBar1.LargeChange=1

    Запускаем. Тянем ползунок в конец в текстовом поле значение 100

    Реальный максимум = hScrollBar1.Maximum-LargeChange+1

    Как лечить?

    8 августа 2012 г. 6:41

Ответы

  • Если вам нужно двигая ползунок получать точное значения для отображения где то, то лучше использовать TrackBar. Со ScrollBar никакого бага нет. Если значение Value+LargeChange > Maximum, то приплюсовки не будет и нужно нажимать на стрелочку вправо/вниз, дабы добрать максимум с помощью SmallChange. В классических сценариях использования ScrollBar это не принципиально и не расценивается как баг.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Abolmasov Dmitry 17 августа 2012 г. 9:50
    8 августа 2012 г. 8:21
    Отвечающий
  • Я немного спутал для чего нужно LargeChange, поэтому ошибся с подгонкой стрелочками. А в остальном мой ответ актуален. Для получения занчения при движении ползунка нужен TrackBar. В ScrollBar же нельзя установить Maximum ручками, можно только из кода. Читайте заметки здесь. Опережая ваш вопрос "Почему так?". Ну видать были на то причины при создании контрола.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Изменено LXGDARKEditor 8 августа 2012 г. 8:47
    • Предложено в качестве ответа LXGDARKEditor 9 августа 2012 г. 14:37
    • Помечено в качестве ответа Abolmasov Dmitry 17 августа 2012 г. 9:50
    8 августа 2012 г. 8:46
    Отвечающий

Все ответы

  • Если вам нужно двигая ползунок получать точное значения для отображения где то, то лучше использовать TrackBar. Со ScrollBar никакого бага нет. Если значение Value+LargeChange > Maximum, то приплюсовки не будет и нужно нажимать на стрелочку вправо/вниз, дабы добрать максимум с помощью SmallChange. В классических сценариях использования ScrollBar это не принципиально и не расценивается как баг.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Помечено в качестве ответа Abolmasov Dmitry 17 августа 2012 г. 9:50
    8 августа 2012 г. 8:21
    Отвечающий
  • Я не стал бы заводить данный вопрос если бы все было именно так, но как ни странно,  стрелочки вправо/вниз так же не достигают максимального значения. метод отрабатывает, значения меняются, но до максимума не дотягивает

    8 августа 2012 г. 8:25
  • Я немного спутал для чего нужно LargeChange, поэтому ошибся с подгонкой стрелочками. А в остальном мой ответ актуален. Для получения занчения при движении ползунка нужен TrackBar. В ScrollBar же нельзя установить Maximum ручками, можно только из кода. Читайте заметки здесь. Опережая ваш вопрос "Почему так?". Ну видать были на то причины при создании контрола.

    Женат на WPF. Тайно встречаюсь с WinRT. Не сложилось с C#!

    • Изменено LXGDARKEditor 8 августа 2012 г. 8:47
    • Предложено в качестве ответа LXGDARKEditor 9 августа 2012 г. 14:37
    • Помечено в качестве ответа Abolmasov Dmitry 17 августа 2012 г. 9:50
    8 августа 2012 г. 8:46
    Отвечающий
  • Не забывайте отмечать ответ (ответы), решающий вашу проблему. Спасибо

    Для связи [mail]

    17 августа 2012 г. 9:51