Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Подавить появление стандартного контекстного меню


Автор: farad 24.1.2008, 11:29
если в гриде в ячейке выделен текст, то при щелканьи правой кнопкой мыши вместо моего контекстного меню появляется стандартное меню "вырезать" "копировать" и тд.. А оно мне не нужно.. Как бы от него избавиться?

Автор: source777 24.1.2008, 23:14
Так ты поставь ReadOnly в true, оно и не будет появляться...

Автор: farad 25.1.2008, 11:44
Цитата(source777 @  24.1.2008,  23:14 Найти цитируемый пост)
 ты поставь ReadOnly в true
а как тогда редактировать?

Автор: source777 25.1.2008, 21:30
Цитата(farad @  25.1.2008,  11:44 Найти цитируемый пост)
а как тогда редактировать?
Так тебе же не надо редактировать... это следует из твоего первого поста, или ты забыл что большинство пользователей копирует и вставляет исключительно через контекстное меню, соответственно подавив его ты итак их лишишь этой возможности...

Автор: farad 28.1.2008, 12:11
Цитата(source777 @  25.1.2008,  21:30 Найти цитируемый пост)
Так тебе же не надо редактировать... это следует из твоего первого поста
 милицейская логика. Открой акцесс и увидишь, что там используется собственное контекстное меню, а пользователи тем не менее не лишены возможности копировать и вставлять текст.

Автор: farad 28.1.2008, 12:54
вопрос решен. В гриде нужно назначить обработчик для EditingControlShowing, а в нем установить этому контролу нужное контекстное меню, в моем случае просто общее меню для всей сетки
Код

        private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            e.Control.ContextMenuStrip = dataGridView1.ContextMenuStrip;
        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)