none
Localizar os ContextMenuStrip criados dinamicamente de um Form RRS feed

  • Pergunta

  • Estou com um problemão que não consigo resolver de modo algum.

    Eu tenho forms criados dinamicamente, controles criados dinamicamente, contextmenustrip criados dinamicamente e associados aos controles dinamicamente.

    Eu até achei um post aqui mostrando como fazer isso, só que, no caso descrito os contextmenustrips são incluidos no modo design, nesse caso a funcão InitializeComponent() é preenchida e executada, mas no meu caso tudo é criado run-time.

    No post que achei o exemplo da um ForEach no Components do For,, mas no meu caso retorna nulo.

    Alguém teria uma sugestão que possa me ajudar neste problema.


    mefdias


    • Editado Marcio Dias sexta-feira, 11 de maio de 2012 15:39
    sexta-feira, 11 de maio de 2012 15:35

Respostas

  • O Form.ContextMenuStrip não esta.

    Mas o que acontece, todo controle de caixa de texto que acrescento eu tenho de criar um ContextMenuStrip novo e incluir um ComboBox e para cada combo pode listar dados diferentes do banco de dados.

    Isso eu até consegui fazer mas na hora de pegar o texto selecionado em uma das combobox do menu só aparece o selecionado do último controle criado.


    mefdias

    • Marcado como Resposta Marcio Dias segunda-feira, 21 de janeiro de 2013 21:08
    sexta-feira, 11 de maio de 2012 17:50

Todas as Respostas

  • A propriedade Form.ContextMenuStrip está nula?


    thiagokoelho

    sexta-feira, 11 de maio de 2012 16:48
  • Eu to fazendo assim:

     foreach (IComponent component in this.Components)
            {
                if (component is ContextMenuStrip)
                {
                    foreach (ToolStripMenuItem item in ((ContextMenuStrip)component).Items)
                    {
                        string teste = item.Name;
                    }
                }
            }

    Na depuração o retorno é esse:

    this.Components = null


    mefdias

    sexta-feira, 11 de maio de 2012 17:07
  • Da uma olhada na propriedade Form.ContextMenuStrip, vê se ela tá nula também.

    thiagokoelho

    sexta-feira, 11 de maio de 2012 17:30
  • O Form.ContextMenuStrip não esta.

    Mas o que acontece, todo controle de caixa de texto que acrescento eu tenho de criar um ContextMenuStrip novo e incluir um ComboBox e para cada combo pode listar dados diferentes do banco de dados.

    Isso eu até consegui fazer mas na hora de pegar o texto selecionado em uma das combobox do menu só aparece o selecionado do último controle criado.


    mefdias

    • Marcado como Resposta Marcio Dias segunda-feira, 21 de janeiro de 2013 21:08
    sexta-feira, 11 de maio de 2012 17:50