Перемещение с помощью колеса мышки по строкам dataGridView

В Visual Studio 2010 Express в панели свойств dataGridView нет события MouseWheel. Но его можно создать в коде. Вот пример.
Кидаем на форму dataGridView. Где Вам будет угодно, например, в Form_Load, пишем следующее:


dataGridView1.MouseWheel += new MouseEventHandler(dataGridView1_MouseWheel);


Создаем обработчик события — перемещение по строкам с помощью колеса мыши:


        void dataGridView1_MouseWheel(object sender, MouseEventArgs e)
        {
            if (e.Delta < 0) { bindingSource1.MoveNext(); } else bindingSource1.MovePrevious();
        }


bindingSource1 источник данных для Вашей гриды. (смотрите пример)

Все. Удачи!

Присоединение DataSet к dataGridView и bindingNavigator

Многократно встречал на форумах вопрос о привязки вручную DataSet-а к элементам отображения и управления данными, такими как bindingNavigator и dataGridView. Визуально в Visual Studio это сделать можно легко, а вот вручную немножечко сложнее. Кстати, в Visual Studio 2010 Express для нелокальной базы данных визуально это вообще сделать не возможно, среда не поддерживает.

Вот пример кода, надеюсь он будет полезен:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace WorkWithDB
{
    public partial class Form1 : Form
    {
        //строка соединения с базой данных
        string connectionString = @"Data Source=ALEXANDER-ПК\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI;";
        //соединение с базой данных
        SqlConnection conn;
        DataSet ds;
        SqlDataAdapter adapter;
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //создаем новое соединение с базой данных
            conn = new SqlConnection(connectionString);
            try
            {
                //открываем соединение с базой данных
                conn.Open();
                //создаем новый ДатаАдаптер
                adapter = new SqlDataAdapter("select * from test", conn);
                SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
                //создаем новый ДатаСет
                ds = new DataSet();
                //связываем DataSet и таблицу test из базы данных
                adapter.Fill(ds, "test");
                //к элементу формы bindingSource (который мы кинули на форму) привязываем таблицу из DataSet-а 
                bindingSource1.DataSource = ds.Tables[0];
                //привязываем bindingSource к bindingNavigator (который мы кинули на форму)
                bindingNavigator1.BindingSource = bindingSource1;
                //привязываем к нашей гриде (которую мы кинули на форму) наш bindingSource
                dataGridView1.DataSource = bindingSource1;

            }
            catch (Exception exception)
            {
                //перехватываем и выводим исключение
                MessageBox.Show(exception.Message);
            }
            finally
            {
                //закрываем соединение с базой данных
                conn.Close();
            }
        }

        //нажимаем кнопочку фиксации изменений на bindingNavigator (изначально добавив ее)
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            this.Validate();
            this.dataGridView1.EndEdit();
            adapter.Update(ds, "test");
        }

        //устанавливаем ячейку в режим редактирования и ввода данных
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            dataGridView1.BeginEdit(true);
        }
    }
}