No post anterior eu mostrei como é possível criar um script em C# dentro da janela de consultas do programa LINQPAD para que você possa executar os códigos que estão em suas DLL´s do framework .NET.
Hoje eu quero demonstrar que estas DLL´s podem conter formulários Windows e estes serem executados pelo LINQPAD.
No seu projeto de “class library” adicione um Windows Form e inclua os controles configurando-os como na tabela abaixo:
Controle | Propriedade | Valor |
Form | Text | Cálculo da área de um quadrilátero |
Size | 366;171 | |
(Name) | frmCalculoArea | |
Label | Text | Altura |
TextBox | (Name) | txtAltura |
Label | Text | Largura |
TextBox | (Name) | txtLargura |
Button | (Name) | btnCalcular |
Text | Calcular… |
Alinhe os controles para que fiquem com uma aparência aproximada à da figura:
Este formulário vai calcular a área de um quadrilátero multiplicando a altura pela largura. Dê um duplo clique no controle “button” e insira o código que é demonstrado abaixo:
12 /// <summary>
13 /// Faz o cálculo a partir dos dados digitados
14 /// </summary>
15 /// <param name="sender"></param>
16 /// <param name="e"></param>
17 private void button1_Click(object sender, EventArgs e)
18 {
19 // variáveis que recebem os valores digitados
20 int Altura, Largura;
21
22 if (int.TryParse(txtAltura.Text, out Altura) &&
23 int.TryParse(txtLargura.Text, out Largura))
24 {
25 MessageBox.Show(string.Format(
26 "A área do quadrado é {0}", Altura * Largura));
27 }
28 else
29 {
30 // não foi possível converter os dados.
31 MessageBox.Show("Não foram digitados valores válidos.");
32 }
33 }
Compile o projeto para gerar a DLL.
No programa LINQPAD inclua o código abaixo:
1 // cria uma instância do formulário
2 Estudo.frmCalculoArea fmForm = new Estudo.frmCalculoArea();
3 // exibe o formulário em uma janela modal
4 fmForm.ShowDialog();
Este código cria uma instância para o formulário na linha 1. Observe que é necessário mostrar o caminho completo incluindo o namespace.
Na linha 3 exibimos a janela do formulário como modal. É somente deste jeito que podem ser exibidas as janelas dentro do LINQPAD.
Configure o tipo da consulta como “C# Statements” no campo “Language”.
O próximo passo é adicionar referências a sua DLL e a biblioteca “System.Windows.Forms” através da tecla F4.
Para acrescentar referência a sua DLL clique no botão “Browse…”. Para adicionar “System.Windows.Forms” clique no botão “Add…” e escolha a biblioteca na lista de itens disponíveis. Note que se você digitar o conteúdo da lista é filtrado de acordo com o texto digitado.
Finalizado este processo, execute o seu código pressionando F5. Veja o script em execução:
Enquanto o formulário estiver sendo executado o script está bloqueado sendo possível interromper a qualquer momento clicando no botão “Stop” .