Как сделать контекстное меню недоступным для выбора, когда пользовательский контроль активен - PullRequest
0 голосов
/ 08 сентября 2010

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

Root | -> some.txt | -> Детский (для some.txt) | -> Child1 (ребенок для ребенка)

Если я щелкну правой кнопкой мыши на Child1, у меня будет опция AddNew. Если пользователь выберет, я покажу пользовательскую форму управления для пользователя, отображаемого на панели.

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

Ответы [ 2 ]

1 голос
/ 08 сентября 2010

Любые изменения в отношении выбора элементов ContextMenu в зависимости от сценария могут быть выполнены в событии открытия ContextMenu.

• Убедитесь, что у вас есть способ определить, является ли пользовательский контроль видимым (флаг, видимость, проверьте! = Ноль ... все, что подходит в вашей ситуации)

• определить обработчик открытия для вашего контекстного меню

• в обработчике открытия проверьте, виден ли элемент управления (см. Пункт 1)

• если это так, установите для включенного состояния пункта меню значение false, в противном случае - значение true.

НТН

0 голосов
/ 08 сентября 2010

Используете ли вы древовидную структуру Winforms или древовидную структуру Asp.net какой-либо сторонний пользовательский контроль? Как бы то ни было, вы должны хранить UserId где-то внутри usercontrol. Поэтому, когда пользователь нажимает на дочерний узел, проверьте, совпадают ли UserId узла и UserId внутри usercontrol. Если они совпадают, отключите эту опцию.

Пожалуйста, вернитесь обратно, если описанный выше обходной путь не поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...