STRING RETORNADA DO SELECT
Pessoal, no meu select abaixo estou buscando o nome do textbox e jogando dentro de uma variavel e a partir dai quero alterar a propriedade do nome do campo retornado no select para visible = true, por exemplo o select retorna txt_name e ai quero pegar este dado e transforma-lo em txt_name.visible = true para fazer com que este textbox fique visivel.
Segue abaixo minha tentativa de criar, porém sem sucesso, a propriedade nao altera para visible.
Abrirconexao()
tabela.Open([Ô]SELECT MMC_VINC_ACESSO_OPRID.MMC_NIVEL, MMC_NIVEL_MENU.MMC_MENU FROM MMC_VINC_ACESSO_OPRID, MMC_NIVEL_MENU WHERE MMC_VINC_ACESSO_OPRID.MMC_NIVEL = MMC_NIVEL_MENU.MMC_NIVEL AND MMC_VINC_ACESSO_OPRID.ID_OPRID LIKE [ô][Ô] & ID_OPRID.Text & [Ô][ô][Ô], Conexao)
Dim result As String
Do While Not tabela.EOF
result = tabela.Fields([Ô]MMC_MENU[Ô]).Value.ToString & [Ô].visible = True[Ô]
tabela.MoveNext()
Loop
Segue abaixo minha tentativa de criar, porém sem sucesso, a propriedade nao altera para visible.
Abrirconexao()
tabela.Open([Ô]SELECT MMC_VINC_ACESSO_OPRID.MMC_NIVEL, MMC_NIVEL_MENU.MMC_MENU FROM MMC_VINC_ACESSO_OPRID, MMC_NIVEL_MENU WHERE MMC_VINC_ACESSO_OPRID.MMC_NIVEL = MMC_NIVEL_MENU.MMC_NIVEL AND MMC_VINC_ACESSO_OPRID.ID_OPRID LIKE [ô][Ô] & ID_OPRID.Text & [Ô][ô][Ô], Conexao)
Dim result As String
Do While Not tabela.EOF
result = tabela.Fields([Ô]MMC_MENU[Ô]).Value.ToString & [Ô].visible = True[Ô]
tabela.MoveNext()
Loop
axo que nesse caso nao da certo porque ele esta sendo tratado como string
acredito que ira precisar usar o System.reflection crie no form um função conforme a seguir !
repare que é uma função que retorna um controle, e voce tem que passar o nome dele como parametro !
use assim...
Testa ai e me fala !
acredito que ira precisar usar o System.reflection crie no form um função conforme a seguir !
Public Function GetControlByName(ByVal Name As String) As Control
[ô]now, why would I put a [Ô]_[Ô] in front of the name?
Dim info As System.Reflection.FieldInfo = Me.GetType().GetField([Ô]_[Ô] & Name, _
System.Reflection.BindingFlags.NonPublic Or _
System.Reflection.BindingFlags.Instance Or _
System.Reflection.BindingFlags.Public Or _
System.Reflection.BindingFlags.IgnoreCase)
If info Is Nothing Then Return Nothing
Dim o As Object = info.GetValue(Me)
Return o
End Function
repare que é uma função que retorna um controle, e voce tem que passar o nome dele como parametro !
use assim...
Abrirconexao()
tabela.Open([Ô]SELECT MMC_VINC_ACESSO_OPRID.MMC_NIVEL, MMC_NIVEL_MENU.MMC_MENU FROM MMC_VINC_ACESSO_OPRID, MMC_NIVEL_MENU WHERE MMC_VINC_ACESSO_OPRID.MMC_NIVEL = MMC_NIVEL_MENU.MMC_NIVEL AND MMC_VINC_ACESSO_OPRID.ID_OPRID LIKE [ô][Ô] & ID_OPRID.Text & [Ô][ô][Ô], Conexao)
Dim result As String
Dim ControleAtual as Control
Do While Not tabela.EOF
result = tabela.Fields([Ô]MMC_MENU[Ô]).Value.ToString
ControleAtual = GetControlByName(result)
ControleAtual.Visible = True
tabela.MoveNext()
Loop
Testa ai e me fala !
é só converter a String para um TextBox
result = tabela.Fields([Ô]MMC_MENU[Ô]).Value.ToString
CType(Me.Controls([Ô]result[Ô]), TextBox).Visible = True
JONATHANSTECKER, como fazer no caso de um toolstripmenuitem? da forma q montei abaixo da erro no Me.Controls([Ô]result[Ô])
CType(Me.Controls([Ô]result[Ô]), ToolStripMenuItem).Visible = True
CType(Me.Controls([Ô]result[Ô]), ToolStripMenuItem).Visible = True
Teste assim.:
Só me corrigindo... No exemplo anterior tem que ser retirado as aspas duplas do variável result.
result = tabela.Fields([Ô]MMC_MENU[Ô]).Value.ToString
Dim Menu As ToolStripItem() = ToolStrip1.Items.Find(result, True)
If Menu.Length > 0 Then
Menu(0).Visible = False
End If
Só me corrigindo... No exemplo anterior tem que ser retirado as aspas duplas do variável result.
CType(Me.Controls(result), TextBox).Visible = True
Quando entra no Menu(0).Visible = False da o seguinte erro --> O Ãndice estava fora dos limites da matriz.
Deixa eu lhe explicar melhor o que preciso, pode ser que vc tenha outra visao de como fazer. No meu projeto tenho um painel principal onde está disponivel meu MENU de acesso aos formularios, no load do formulario principal, eu inativo todos meus ToolStripMenuItem, e logo depois faço o select como mostrado anteriormente e busco o nome dos ToolStripMenuItem no meu banco de acordo com que estiver vinculado ao usuario, o que preciso é que os ToolStripMenuItem retornado no select sejam ativados (.visible = true).
Deixa eu lhe explicar melhor o que preciso, pode ser que vc tenha outra visao de como fazer. No meu projeto tenho um painel principal onde está disponivel meu MENU de acesso aos formularios, no load do formulario principal, eu inativo todos meus ToolStripMenuItem, e logo depois faço o select como mostrado anteriormente e busco o nome dos ToolStripMenuItem no meu banco de acordo com que estiver vinculado ao usuario, o que preciso é que os ToolStripMenuItem retornado no select sejam ativados (.visible = true).
Tópico encerrado , respostas não são mais permitidas