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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение к чему относится contextmenustrip 
:(
    Опции темы
starostin
Дата 27.10.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



у меня есть несколько checkedlistbox, к ним привязан один и тот же contextmenustrip, у него один айтем у которого подайтем textbox, у textbox обрабатывается событие нажатия клавиши, и когда нажимается enter нужно использовать метод, но для того что бы его использовать, мне надо определить по какому cgheckedlistbox было вызвано меню
user posted image
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
starostin
Дата 27.10.2011, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 28.9.2009
Где: Ярославль

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



делаю примерно как тут
Код

private void NewNodeTB_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                ToolStripTextBox tb = (ToolStripTextBox)sender;
                ToolStripDropDownMenu tsddm = (ToolStripDropDownMenu)tb.Owner;
                ToolStripMenuItem tsmi = (ToolStripMenuItem)tsddm.OwnerItem;
                ContextMenuStrip cms = (ContextMenuStrip)tsmi.Owner;
                ContextMenuStrip clb = (ContextMenuStrip)cms.SourceControl;
                string ssss = clb.Name;
            }
        }

но в (ContextMenuStrip)cms.SourceControl = null :( Может надо какое то свойство включить у checkbox?
PM MAIL ICQ Skype GTalk Jabber MSN   Вверх
Fortnox
Дата 29.10.2011, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 373
Регистрация: 31.10.2008
Где: Ростов-на-Дону

Репутация: 2
Всего: 22



Это, если не ошибаюсь, бага такая была: у дочерних элементов контекстного меню свойство SourceControl всегда null.
Решение:
Завести свою переменную для хранения инициатора в обработчике события DropDownOpened:
Код

Control _sourceCtrl;

contextMenu_DropDownOpened(object sender, EventArgs e)
{
    _sourceCtrl = contextMenu.SourceControl;
}

Ну или зафигачить свое меню в фиксом этого бага(?), например:
Код

    public class MyContextMenu : ContextMenuStrip
    {
        public Control SrcControl { get; set; }

        protected override void OnOpened(EventArgs e)
        {
            SrcControl = this.SourceControl;
            base.OnOpened(e);
        }
    }

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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