Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.06.2012, 20:27   #1
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию Не всплывает контекстное меню

Доброго здоровья!
Использую VS 2008 и 2010. Не всплывает ContextMenuStrip cms, указанное в свойствах элементов типа TextBox и RichTextBox. То же самое меню cms, указанное в свойствах dataGridView, расположенном в том же контроле, исправно всплывает на правую клавишу мыши. Явная привязка "вручную" (в коде) тоже не помогает. Возможно, здесь кроется какая-то ерунда, но она меня здорово тормозит. Не намекнет ли кто-нибудь, в чем тут дело?
Гаврилов вне форума Ответить с цитированием
Старый 10.06.2012, 23:23   #2
wm_leviathan
Форумчанин
 
Аватар для wm_leviathan
 
Регистрация: 17.02.2010
Сообщений: 399
По умолчанию

может быть так?
Код:
        private void txtFam_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Right)
            {
                contextMenuStrip1.Show(this, e.Location);
            }
        }
хотя стандартный способ должен работать во всяком случае у меня работает.

и хотелось бы знать на чем располагается TextBox\RichTextBox ? на форме или еще на чем ?

Последний раз редактировалось wm_leviathan; 10.06.2012 в 23:49.
wm_leviathan вне форума Ответить с цитированием
Старый 11.06.2012, 00:26   #3
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию

Я этот обработчик (и аналогичные) уже пробовал - моё сontextMenuStrip не выводится, а выводится стандартное сontextMenu редакторов Microsoft с призывами скопировать, вставить, применить IME и т.д. Если его вывод подавить, создав своё такое же меню:
textBox1.ContextMenu = new ContextMenu(); // Место занято
- то с этим обработчиком так же вообще ничего не выводится, как и после указания сontextMenuStrip в свойствах textBox1 (или richTextBox1).
А с dataGridView это же меню сontextMenuStrip работает, в том числе и с пустым. Там только при редактировании ячеек опять вместо него появляется атавистическое сontextMenu, которое только мешает (и я думаю, как его и в ячейках подавить, т.к. в отношении всего dataGridView оно уже подавлено принудительным созданием элемента такого же типа, см. выше).
Всё это происходит не в форме, а в UserControl`е, который является внутренним контролом (inner control) таб-страницы типа
Crownwood.DotNetMagic.Controls.TabP age, но, по-моему, это не должно влиять. Во всяком случае, в таких же таб-контролах у меня работает без замечаний ещё многое из хозяйства VS WinForms, в том числе контекстное меню датагрида. И вообще известно, что DotNetMagic.dll хорошо уживается в VS. Только с TextBox и RichTextBox вышла осечка - общее в поведении то, что там сразу же требуется редактировать текст, как и при выделении текста в ячейке датагрида, и тогда норовит вместо сontextMenuStrip выскочить ContextMenu редактирования текстового контента "по умолчанию" (на фиг нам такой навязчивый сервис!).

Последний раз редактировалось Гаврилов; 11.06.2012 в 01:38.
Гаврилов вне форума Ответить с цитированием
Старый 13.06.2012, 13:25   #4
Гаврилов
Пользователь
 
Регистрация: 11.05.2012
Сообщений: 85
По умолчанию

Если кто интересуется, то я разобрался.
Коротко едва ли можно описать, но общий смысл в том, что упомянутые мной textBox и richTextBox используются не в чистом виде, а входят в более сложные контролы, позволяющие переключать "только чтение" на "редактирование" и обратно с изменением фона, имеющие признак изменения содержания и др. Оболочка (старший контрол, содержащий эти контролы) действительно не реагировала на правую клавишу мыши и не могла реагировать, т.к. я для этого ничего не сделал. Диагноз: "Прибор не работал, потому что не был включен в сеть".
Но когда я "поднял" событие соответствующего входящего контрола на уровень основного (событие вызывает такое же событие старшего), то всё заработало.
Гаврилов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Контекстное меню AlexeiDelejov Общие вопросы Delphi 2 13.09.2011 09:50
Контекстное меню detalik Помощь студентам 5 14.04.2011 09:34
контекстное меню J.Bond Помощь студентам 3 17.06.2010 21:18
Контекстное меню anGeee Общие вопросы Delphi 1 30.10.2009 21:28
Контекстное меню mar4elo Общие вопросы Delphi 19 18.09.2009 14:30