Usuário com melhor resposta
Executar comando dentro de uma string

Pergunta
-
Pessoal, tem como executar um linha de comando que esteja dentro de uma string como por exemplo:
string cm = "Application.Exit()"
ExecutaLinhaComando(cm);
A ideia é q eu tenho uma tabela q monta o menu do sistema e dentro dela tenho uma coluna c/ as funções q cada opção do menu tem q fazer.
A maioria deve chamar um FORM, mas podem haver casos das opções dos menus serem FUNÇÕES ou COMANDOS como o exemplo acima.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
Respostas
-
A forma ideal é fazer tradicionalmente, mas,!
Para Form seria assim:
Type _type = Type.GetType("WindowsFormsApplication2.Form8"); Form _form = (Form)Activator.CreateInstance(_type); _form1.ShowDialog();
Ali aonde tá WindowsFormsApplication2.Form8 seria o namespace e o nome do Form igual tá no código abaixo
namespace WindowsFormsApplication2 { public partial class Form8 : Form { Form9 frm9; public Form8() { InitializeComponent(); }
- Sugerido como Resposta Fulvio Cezar Canducci Dias terça-feira, 26 de novembro de 2013 01:55
- Marcado como Resposta Frederico Oliva terça-feira, 26 de novembro de 2013 12:03
Todas as Respostas
-
Frederico,
você pode utilizar Reflection para fazer isso, dá uma olhada no link abaixo.
Chamar uma função a partir de uma string
-
Cesar, desculpe a insistencia. Eu link o exemplo do link da sua resposta, mas eu sinceramente nao entendi como aplicar no meu caso.
No meu caso por exemplo eu gostaria de executar um comando, como o APPLICATION.EXIT()
Como eu poderia fazer algo assim:
string cm = "Application.Exit()"
ExecutaLinhaComando(cm);
Por favor, poderia me ajudar executar o codigo da funcao EXECUTALINHACOMANDO?
Desde já obrigado e desculpe o incomodo.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
-
Frederico se tratando de um método que retorn um tipo string você pode sim utilizar desta maneira:
string teste = metodoRetornoString(); public string metodoRetornoString() { // Aqui vai seu código, digamos que você tenha uma string nesse trecho. Application.Exit()
string exit = "fechado"; return exit; }
Com isso a sua string teste, irá receber o resultado retornado pelo método metodoRetornoString.
Mas creio que esse application.exit() não retorna: http://msdn.microsoft.com/pt-br/library/system.windows.forms.application.exit(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/ms157894(v=vs.110).aspx
Espero que ajude.
Se ajudou marque.
Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs
-
-
Pesquei sei o ENUM e entendi seu funcionamento.
O problema de usar o ENUM é q eu ficaria na dependencia de fixar as chamadas dos FORMS no fonte e não gostaria disto.
Eu tenho uma tabela MENUS no meu banco de dados onde consta o texto e hierarquia q deve ser exibido no MENU da tela principal (objeto TREEVIEW) e uma coluna como o nome original do FORM, como por exemplo SOBRE_FORMS.
Ao clicar em uma das opcoes do menu o TREEVIEW eu capturo a propriedade NAME do SELECTEDNODE e passa para uma função a acessa a tabela MENU, localiza a linha e deveria carregar o FORM q consta na coluna FORM_ORIGINAL.
Eu usava uso bastante no VFP uma funcao chama EXECSCRIPT q faz exatamente em tempo de execucao ler e executar linhas de comandos passadas.
Senao existisse uma funcao pronta no C# gostaria de criar minha propria funcao que faca isto.
Ou senao tambem estou aberto para entender outros conceitos que eu poderia aplicar para solucionar minhas necessidades.
Desde ja obrigado.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
-
-
-
-
-
A forma ideal é fazer tradicionalmente, mas,!
Para Form seria assim:
Type _type = Type.GetType("WindowsFormsApplication2.Form8"); Form _form = (Form)Activator.CreateInstance(_type); _form1.ShowDialog();
Ali aonde tá WindowsFormsApplication2.Form8 seria o namespace e o nome do Form igual tá no código abaixo
namespace WindowsFormsApplication2 { public partial class Form8 : Form { Form9 frm9; public Form8() { InitializeComponent(); }
- Sugerido como Resposta Fulvio Cezar Canducci Dias terça-feira, 26 de novembro de 2013 01:55
- Marcado como Resposta Frederico Oliva terça-feira, 26 de novembro de 2013 12:03
-
Fúlvio era exatamente o q eu precisava. Mt obrigado mesmo. Veja como ficou o código e as tabelas q estão fornecendos os dados variáveis.
Se tiver alguns, seus comentários e sugestões são sempre mt bem vindos.
Atenciosamente, Frederico Oliva (foliva@dc-info.com)
-
-
-
-
bom dia Fúlvio, desculpe te incomodar, mas gostaria de aproveitar da sua vasta experiência e pedir sua ajuda novamente.
Fazem 3 dias que estou parado no problema do link abaixo e hj resolvi abrir o post, será q qdo tivesse um tempinho, poderia ler e me enviar seus comentários?
Desde já obrigado.
Frederico Oliva