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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> switch(?????????), А что же поставить????? 
V
    Опции темы
Berserk
  Дата 12.1.2007, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Есть ToolStrip, имеются также  ToolStripMenuItems. Есть button, Ок которая.
При нажатии на кнопку необходимо, чтоб делалось опредаленное событие. Можно конечно создать несколько кнопок Ок, но это если  ...MenuItems несколько, а если их много, то не выход получается.
При каждом  выборе ...MenuItems выполняется только одно действие.
Так что можно поставить на месте вопросов, чтоб в case ставить один из пунктов ...MenuItems???


Код

private void buttonOK_Click(object sender, EventArgs e)
        {
            switch (???????????????)
            {
                case ToolStripMenuItem1:
                         .......
                         break;
                 ........

            }
        }

--------------------
  
PM MAIL ICQ   Вверх
ivashkanet
Дата 12.1.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Berserk, что-то не понятно smile

Ты выбираешь item из меню, а потом нажимаешь на ok и хочешь выполнить команду, которая соответсвует выбранному айтему?

Но этого нельзя сделать, меню айтем не запоминает, что на него нажали. Он может только среагировать на нажатие на него  smile 

Сделай общий обработчик для нажатий на разные пункты меню:
Код

private void ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            // проверяем действительно ли кликнули на ToolStripMenuItem
            if (sender is ToolStripMenuItem)
            {
                // получаем экземпляр айтема, на который кликнули
                ToolStripMenuItem menuItem = sender as ToolStripMenuItem;

                switch (menuItem)
                {
                       case ToolStripMenuItem1:
                         .......
                         break;
                       ........
                }
            }
        }

и будет тебе счастье smile


Это сообщение отредактировал(а) ivashkanet - 12.1.2007, 12:44
PM MAIL WWW ICQ   Вверх
Berserk
Дата 12.1.2007, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Возможно я не все дорассказал. При выборе ...MenuItem'а появляются определенные листбоксы, комбобоксы и еще куча всего. Поклацав по боксам и не боксам,  получаем определенные данные. Но дело в том, что от того какой   ...MenuItem мы нажмем зависит то, что появиться на форме. А кнопка Ок всегда будет одна и таже. Я думаю мне это пойдет. Можно даже и без if скорее всего. Попробую smile 

спасибо smile  


Попробовал  smile . Чего-то не хочет. Выдает ошибку:
A value of an integral type expected(Значение ожидаемого целого типа)
Код

switch (menuItem) //подчеркивает menuItem

 smile 


Это сообщение отредактировал(а) Berserk - 12.1.2007, 14:52
--------------------
  
PM MAIL ICQ   Вверх
marcusmae
Дата 12.1.2007, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


stravaganza
**


Профиль
Группа: Участник
Сообщений: 874
Регистрация: 26.3.2006

Репутация: 3
Всего: 39



по-моему, так

Код

switch (menuItem) //подчеркивает menuItem


нельзя делать. Под свичом могут быть только интегральные типы : sbyte, byte, short, ushort, int, uint, long, ulong, char, string или enum-type.


--------------------
ἀπὸ μηχανῆς θεός
PM MAIL ICQ GTalk   Вверх
maxim1000
Дата 12.1.2007, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



можно сделать так: привязать каким-либо образом интегральное значение к каждому пункту меню, а уже его ставить в switch

иногда подобные объекты сами предоставляют эту возможность, а можно завести что-нибудь отдельное для хранения соответствий (в C++ подошёл бы std::map, думаю и здесь что-то найдётся)

P.S.
ну а потом уже можно и от switch'а перейти к полиморфизму, но это зависит от масштабов кода в switch'е...


--------------------
qqq
PM WWW   Вверх
ivashkanet
Дата 12.1.2007, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Цитата(Berserk @  12.1.2007,  12:06 Найти цитируемый пост)
. Чего-то не хочет. Выдает ошибку:

Ах лопух, я лопух  smile  smile 

Цитата(maxim1000 @  12.1.2007,  14:49 Найти цитируемый пост)
можно сделать так: привязать каким-либо образом интегральное значение к каждому пункту меню, а уже его ставить в switch

Ага:
Код

switch (menuItem.Name)
                switch (menuItem.Name)
                {
                    case "Имя 1":
                        break;
                    case "Имя 2":
                        break
                }


Вместо Name можно использовать Text (надпись на айтеме)

Добавлено @ 16:43 
Цитата(maxim1000 @  12.1.2007,  14:49 Найти цитируемый пост)
ну а потом уже можно и от switch'а перейти к полиморфизму, но это зависит от масштабов кода в switch'е...

Не пугай новичков страшными словами  smile  smile  smile 
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 12.1.2007, 16:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(ivashkanet @  12.1.2007,  15:42 Найти цитируемый пост)
Вместо Name можно использовать Text (надпись на айтеме)

а строки можно?


--------------------
qqq
PM WWW   Вверх
ivashkanet
Дата 12.1.2007, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 11
Всего: 149



Цитата(maxim1000 @  12.1.2007,  15:49 Найти цитируемый пост)
а строки можно?

Константные -- да.
Я компилировал  smile 

PM MAIL WWW ICQ   Вверх
Berserk
Дата 15.1.2007, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Все получается без проблем. smile . 
smile 
Как говарится:
"Учи мат. часть smile "
Буду учить. smile 
--------------------
  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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