В DataGridView с помощью CellMouseDoubleClick и определения, когда кто-то щелкнул заголовок - PullRequest
1 голос
/ 09 апреля 2011

В моем элементе управления DataGridView я бы хотел, чтобы пользователь дважды щелкнул строку и получил соответствующую информацию.

Вот мой код: ( РЕДАКТИРОВАТЬ )

private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.RowIndex != -1)
    {
        int studentID = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
        StudentInformation addForm = new StudentInformation(studentID);
        addForm.ShowDialog();
    }            
}

Проблема в том, что когда кто-то дважды щелкает заголовок (а я обнаружил эту ошибку случайно!), Возникает исключение. Я не хочу ничего обрабатывать, когда пользователи дважды щелкают заголовок.

Как я могу определить, когда был нажат заголовок?

Спасибо!

EDIT Кажется, что заголовок имеет RowIndex -1. Это лучший способ проверить, или это грязный хак?

Ответы [ 3 ]

1 голос
/ 10 октября 2012
private void dgvDataGridView_DoubleClick(object sender, EventArgs e)
{
    if (sender != null && e != null && ((MouseEventArgs)e).Y <= ((DataGridView)sender).Rows[0].Height)
        return; //Double click on Header
1 голос
/ 09 апреля 2011

Проверьте, если datagridview.SelectedRows.Count> 0, это также поможет вам, когда строки не выбраны

private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
{
    if (e.RowIndex >= 0 && dataGridView.SelectedRows.Count>0)
    {
        int studentID = Convert.ToInt32(dataGridView1[0, e.RowIndex].Value);
        StudentInformation addForm = new StudentInformation(studentID);
        addForm.ShowDialog();
    }            
}
0 голосов
/ 30 мая 2015
private void radgvAreaAdmin_CellDoubleClick(object sender, GridViewCellEventArgs e)
{
      if (e.Row.Index <= -1)
           //Do your code inside in it.
}

e.rowindex может отличаться в зависимости от вашего фокуса.Но если вы используете e.row.index, он всегда будет равен -1, когда мы нажимаем на заголовок столбца сетки.Если вы хотите игнорировать двойной щелчок в заголовке, просто используйте «return» после условия if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...