none
ToolStripMenu e ToolStripSeparator RRS feed

  • Pergunta

  • Tenho um menu com ToolStripMenu e ToolStripSeparator. Eu queria fazer um foreach para pegar apenas os ToolStripMenu. Fiz o seguinte:
    foreach (ToolStripMenuItem menu in menuPrincipal.Items)
    {
         foreach (ToolStripMenuItem sub in menu.DropDownItems)
         {
    Quando faço isso dá erro no 2º foreach, pois ele tenta converter um ToolStripSeparator para ToolStripMenu. Como faço um foreach, neste caso, para apenas pegar os ToolStripMenu's, desprezando os ToolStripSeparator's?
    Get a life. Go party!
    quinta-feira, 16 de abril de 2009 23:00

Respostas

  • E ai cara, voce por aqui? Mundo pequeno..hehe

    Nao sei se existe uma forma mais simples de se fazer isso, mas a que eu encontrei é a seguinte:

    foreach (ToolStripMenuItem menu in menuPrincipal.Items)
    {
         foreach (ToolStripItem sub in menu.DropDownItems)
         {
               // checa se item é um separator 
               if (sub is ToolStripSeparator)
               {
                    // é um separator
               }
               else
               {
                    // nao é um separator
               }
          }
    }
    []s
    Robson Castilho - Desenvolvedor C# - MCTS .Net 2.0 Windows Applications
    • Marcado como Resposta JobaDiniz sexta-feira, 17 de abril de 2009 04:07
    sexta-feira, 17 de abril de 2009 01:57

Todas as Respostas

  • E ai cara, voce por aqui? Mundo pequeno..hehe

    Nao sei se existe uma forma mais simples de se fazer isso, mas a que eu encontrei é a seguinte:

    foreach (ToolStripMenuItem menu in menuPrincipal.Items)
    {
         foreach (ToolStripItem sub in menu.DropDownItems)
         {
               // checa se item é um separator 
               if (sub is ToolStripSeparator)
               {
                    // é um separator
               }
               else
               {
                    // nao é um separator
               }
          }
    }
    []s
    Robson Castilho - Desenvolvedor C# - MCTS .Net 2.0 Windows Applications
    • Marcado como Resposta JobaDiniz sexta-feira, 17 de abril de 2009 04:07
    sexta-feira, 17 de abril de 2009 01:57
  • Assim não dá certo, ele já dá erro no foreach pq ele tenta converter...fiz assim:

    foreach(object obj in menu.DropDownItems)
    {
         if(obj is ToolStripItem)
            ToolStripItem sub = obj as ToolStripItem;
         ....


    mas vlw.
    Get a life. Go party!
    sexta-feira, 17 de abril de 2009 02:16
  • Nao dá erro nao.

    Note que no 2º foreach, eu troquei de "ToolStripMenuItem" para "ToolStripItem" (e portanto o erro de conversao nao ocorre mais, porque um ToolStripSeparator é derivado de ToolStripItem).

    Mas se vc ja resolveu, blz!

    []s
    Robson Castilho - Desenvolvedor C# - MCTS .Net 2.0 Windows Applications
    sexta-feira, 17 de abril de 2009 02:23
  • é verdade.
    Get a life. Go party!
    sexta-feira, 17 de abril de 2009 04:07