Избегайте двойного щелчка при пожаре при щелчке между областями изменения размера столбца

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

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

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

Пожалуйста, помогите мне найти решение этой проблемы. Спасибо!!

2 ответа

Решение

Я просто использовал показанную ниже проверку, чтобы избежать двойного щелчка при двойном щелчке по заголовкам столбцов / разделителям. Это сработало для меня.

    private void dgvConnections_DoubleClick(object sender, EventArgs e)
    {
                //Ensure the double click isn't firing when the mouse is clicked anywhere over the column headers/ column separators. 
                DataGridView.HitTestInfo hit = dgvConnections.HitTest(((MouseEventArgs)e).X, ((MouseEventArgs)e).Y);
                if (hit.RowIndex == -1)
                    return;
        //my code here, which should run on double click
    }

Убедитесь, что RowIndex не равен -1 в вашем событии двойного щелчка.

if(e.RowIndex !=-1) { // your code }

Другие вопросы по тегам