none
dataGridView Скрол RRS feed

  • Вопрос

  • Здравствуйте,

     

    Есть ли возможность настроить dataGridView так чтобы при горизантальном скорле перемещение происходила сразу на 1 столбец, как в Excel, сейчас при обновлении таблици по таймеру скрол меняет свое положение (если скрыта часть текущего столбца), что очень пугает пользователей.


    • Перемещено Abolmasov Dmitry 3 августа 2011 г. 6:30 (От:Где задать вопрос?)
    29 июля 2011 г. 15:36

Ответы

  • Стандартно сколл по столбцам DataGridView не поддерживает. Переоределить его скролл для такого поведения скорей всего не получится, все равно будут плавно скролится столбцы, а потом курсор будет резко перепрыгивать на новый.

    Наверное проще сделать скрытым стандартный скроллбар и добавить отдельно горизонтальный скроллбар, который не будет связан с DataGridView и с помощью которого можно реализовать скролл по колонкам.

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

        public Form1()
        {
          InitializeComponent();
    
          dataGridView1.ScrollBars = ScrollBars.Vertical;
          
          hScrollBar1.LargeChange = 1;
          hScrollBar1.Minimum = 0;
          hScrollBar1.Maximum = dataGridView1.Columns.Count - 1;
        }
    
        private void hScrollBar1_Scroll(object sender, ScrollEventArgs e)
        {
          if (e.NewValue != e.OldValue)
            dataGridView1.FirstDisplayedScrollingColumnIndex = e.NewValue;
        }
    

     


    Для связи [mail]
    • Предложено в качестве ответа Abolmasov Dmitry 4 августа 2011 г. 5:19
    • Помечено в качестве ответа Abolmasov Dmitry 5 августа 2011 г. 11:34
    3 августа 2011 г. 8:00