Стандартно сколл по столбцам 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]