Ir para conteúdo
Fórum Script Brasil
  • 0

Executar Objeto


Pr0gr4m4d0r

Pergunta

todo mundo sabe q fazendo isso diretamente no código: mnuMenu1.Visible = True (ou False) dá certo, só que estou desenvolvendo um módulo de acesso e os mnuMenu1, mnuMenu2 , etc, vem de 1 tabela, e através de um OleDbDataReader estou trazendo essas informações q são do tipo string, o que eu quero é concatenar esse OleDbDataReader("menu") com o método .Visible = True, mas para isso dar certo eu tenho q atribuí-lo para 1 variável do tipo Object, o que eu quero é depois de fazer essa atribuição, executar essa variável, como faço? ex:

.

.

.

Dim odrMenu As OleDbDataReader
odrMenu = odcMenu.ExecuteReader

Dim obj As New Object

Do While odrMenu.Read
    obj = odrMenu ("menu") & ".Visible = True"
    <agora quero executar essa variável obj, como faço?>
Loop

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Não tem como... não existe macrosubstituição no VB.NET. O que você poderia usar no caso é Reflection ou procurar (dentre os objetos do form) o menu cujo nome é igual ao que veio do DataReader e a partir deste objeto você definir sua propriedade Visible.

EDITADO: a segunda opção de que falei é a demonstrada pelo kuroi no post abaixo. :)

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

agora eu fiz isso:

Dim odrMenu As OleDbDataReader
odrMenu = odcMenu.ExecuteReader

Do While odrMenu.Read
    Me.Controls(odrMenu("menu")).Visible = True
Loop

mas dá esse erro: "object variable or with block variable not set", sendo que o nome do menu que vem do OleDbDataReader é o mesmo por mim criado em tempo de projeto. e eu fiz 1 teste tirando esse código acima do evento load do form e colocando no evento click de um botão, só pra ter certeza que o menu criado em tempo de projeto tinha sido criado antes do meu código, e continua dando o mesmo erro. pior que quando coloquei esse código aqui, pensei que iria funcionar, oh shit! :P, será que não tem mais algum detalhe? e o que seria usar esse 'reflection' citado por você graymalkin?

Link para o comentário
Compartilhar em outros sites

  • 0

esse menu q você fala é um objeto MenuStrip??

e por acaso ele ta dentro de alguma outra coisa, tipo um GroupBox ou um Panel??

se tiver você tem q pegar os controles q estejam dentro do GroupBox. por exemplo:

GroupBox1.Controls("menu").Visible = True
ou ainda
Me.Controls("GroupBox1").Controls("menu").Visible = True

ai se for um GroupBox q esteja dentro de outro q esteja dentro de outro q esteja dentro de outro e etc, você teria q ir pegando pelos controles do primeiro ate chegar no ultimo.

Link para o comentário
Compartilhar em outros sites

  • 0
esse menu q você fala é um objeto MenuStrip??

e por acaso ele ta dentro de alguma outra coisa, tipo um GroupBox ou um Panel??

se tiver você tem q pegar os controles q estejam dentro do GroupBox. por exemplo:

GroupBox1.Controls("menu").Visible = True
ou ainda
Me.Controls("GroupBox1").Controls("menu").Visible = True
ai se for um GroupBox q esteja dentro de outro q esteja dentro de outro q esteja dentro de outro e etc, você teria q ir pegando pelos controles do primeiro ate chegar no ultimo.
sim kuroi, ele é um menustrip e não está associado a nenhum groupbox, panel ou a algum outro objeto. tentei fazer assim desse outro jeito q você falou:
Me.Controls("MenuStrip1").Controls(odrMenu("menu")).Visible = True

mas não funcionou :(

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...