Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ContextMenu и его событие 
V
    Опции темы
DenWPF
Дата 16.4.2011, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



В коде вызываю своё контекстное меню.
Код

var contextMenu = new InterfaceContextMenu();
contextMenu.Show(this,x, y);
if(true)// [color=red]Позиция 2[/color]
{
    //...
}

Код самого контекстного меню.
Код

public partial class InterfaceContextMenu : ContextMenu
    {
        public InterfaceContextMenu(List<string> parent)
        {
            MenuItem menuItem;
            for (int i = 0; i < parent.Count;i++ )
            {
                menuItem = new MenuItem(parent[i].ToString());
                menuItem.Click+=new EventHandler(menuItem_Click);
                this.MenuItems.Add(menuItem);
            }

            InitializeComponent();
        }

        void menuItem_Click(object sender, EventArgs e)//[color=red]Позиция 1[/color]
        {
             throw new NotImplementedException();
        }


        
    }


При клике позиция 2 срабатывает раньше чем 1, хотя мне нужно наоборот.

Из контекстного меню ещё нужно будет забрать информацию на что кликнул пользователь.

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

PM MAIL   Вверх
Экскалупатор
Дата 16.4.2011, 23:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(DenWPF @  16.4.2011,  22:31 Найти цитируемый пост)
При клике позиция 2 срабатывает раньше чем 1, хотя мне нужно наоборот.

не совсем понял что за позиции? контекстное меню сначала генерирует событие клика вообще по себе(по любой строке), но если указано событие Click для конкретной позиции меню то потом генерит для него. по крайней мере у меня так работает.

Добавлено через 1 минуту и 45 секунд
так что у тебя вроде все правильно работает(на сколько я понял что ты имеешь ввиду). я думаю проще тебе будет не обрабатывать события клика по меню вообще, а обрабатывать только событие клика по конкретному пункту.
PM MAIL ICQ   Вверх
DenWPF
Дата 16.4.2011, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Запускается контекстное меню, я в нем нажимаю на любой его елемент, сразу контекстное меню сворчивается и идет дальше по коду  т.е в Позицию 2 (там где  if(true))

а потом уже срабатывает обработчик события.
PM MAIL   Вверх
Экскалупатор
Дата 17.4.2011, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



тут дело не в том что оно переходит, оно просто не прерывается выполнение кода, потому что контекстное меню это не форма и ей управление не передается, просто на форме отображается еще один контрол, по этому после окончания выполнения метода Show(), продолжает выполняться то что после него и только потом Click. а зачем тебе просто показывать меню? сделай его включение по правому клику мышки(как во всех прогах) и ничего там больше не указывай и будет все ок.
PM MAIL ICQ   Вверх
DenWPF
Дата 17.4.2011, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Тут другая задача. 
Но я понял, значит буду прописывать, то что мне нужно в событии, и не буду не чего ждать из контекстного меню.
Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0410 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.