powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Контекстное меню в DataGridView
6 сообщений из 6, страница 1 из 1
Контекстное меню в DataGridView
    #39228674
VladIvanych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал контекстное Меню в DataGridView. Необходимо, чтобы оно появлялось только в определенном столбце.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 private void dgv_Zakaz_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
            {
               if (e.ColumnIndex==2)
               {
                   if (e.Button==MouseButtons.Right)
                   {
                      
                     ...что-то там должно быть?
                   }
               }
               else
               {
                   
               }
            }


Если на гриде ставишь свойство СontextMenuStrip - contextMenuStrip1 то появляется во всех столбцах, как его заставить открыться только в нужном столбце?
...
Рейтинг: 0 / 0
Контекстное меню в DataGridView
    #39228684
VladIvanych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось вот так
Код: c#
1.
2.
3.
4.
5.
                   if (e.Button==MouseButtons.Right)
                   {
                       contextMenuStrip1.Show(dgv_Zakaz, e.Location);
                     
                   }



хотя несколько коряво, позиция зависит от точки куда ткнешь в столбце
...
Рейтинг: 0 / 0
Контекстное меню в DataGridView
    #39229561
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На счет конкретного столбца, такой необходимости не было.
Но вот при щелчке правой кнопкой не происходит того, что ячейка (строка, столбец) не становится текущей и соответственно действия из меню (если они есть, например удалить строку) будут направлены не на то место куда ты кликнул правой мышью.
Вот чтоб стало текущей ячейкой.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        private void dg_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                DataGridView.HitTestInfo hit = ((DataGridView)sender).HitTest(e.X, e.Y);
                if (hit.Type == DataGridViewHitTestType.Cell)
                {
                    DataGridViewCell clickedCell = ((DataGridView)sender).Rows[hit.RowIndex].Cells[hit.ColumnIndex];
                    ((DataGridView)sender).CurrentCell = clickedCell;
                }
            }

        }
...
Рейтинг: 0 / 0
Контекстное меню в DataGridView
    #39230896
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
fortibransa,

Если использовать событие CellMouseDown, то код короче.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
private void vIEW_PLACEDataGridView_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                
                vIEW_PLACEDataGridView.CurrentCell = vIEW_PLACEDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex];
            }

        }
...
Рейтинг: 0 / 0
Контекстное меню в DataGridView
    #39230920
Фотография fortibransa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2, ну смысл один, при правой мыши надо сделать ячейку текущей.
...
Рейтинг: 0 / 0
Контекстное меню в DataGridView
    #39231101
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
fortibransaCat2, ну смысл один, при правой мыши надо сделать ячейку текущей.

Да, только примененный мной способ проще.

VladIvanych, используя CellMouseDown можно получить больше инфы из е и, следовательно, более точно позиционировать контекстное меню
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Контекстное меню в DataGridView
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]