C# - Criando um projeto Windows Forms no .NET Core 5.0


Hoje vamos criar nossa primeira aplicação Windows Forms no .NET 5.0.

O Windows Forms não morreu e esta mais vivo que nunca.


A prova disso é que podemos criar projetos Windows Forms no .NET 5.0 usando praticamente os mesmos recursos que no .NET Framework.  Só tem um detalhe : as aplicações só rodam no ambiente Windows.

 

A título de exemplo vamos criar uma aplicação Windows Forms bem simples que vai usar apenas controles básicos como Label, TextBox e que vai pegar o texto HTML a partir de uma URL informada e exibir em um TextBox.

Para acompanhar o exemplo você terá que atualizar os seguintes recursos:

  1. .NET Core SDK para a versão 5.0
  2. Visual Studio Community para a versão 16.8.0 (ou superior)

Antes de iniciar a criação do projeto é bom acionar o menu Tools e em Options selecionar Environment e a seguir Preview Features e marcar a opção : Use preview Windows Forms designer for .NET Core apps

 


 

Criando o projeto Windows Forms

 

A seguir podemos abrir o Visual Studio 2019 Community e clicar em Create New Project;

 

E seleciona a opção de template :  Windows FOrms App(.NET)

 

 

Na próxima janela informe um nome para a aplicação : WinForm_NetCore1 escolha o local e clique em Create.

A seguir na janela de propriedades do projeto na guia Application defina o Target Framework para .NET 5.0.

Pronto agora podemos criar o nosso projeto.

No formulário Form1.cs inclua os controles com as respectivas propriedades definidas:

A seguir inclua o código a seguir em cada evento descrito:

1 - Form_Load

Atribui a url padrão à caixa de texto txtUrl

        private void Form1_Load(object sender, EventArgs e)
        {
            txtUrl.Text = "http://www.macoratti.net";
        }

2-  menuStrip1_ItemClicked

Abre o menu de diálogo para encerrar a aplicação e fechar a janela

       private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            string message = "Deseja encerrar esta aplicação ?";
            string title = "Fechar janela";
            MessageBoxButtons buttons = MessageBoxButtons.YesNo;
            DialogResult result = MessageBox.Show(message, title, buttons, MessageBoxIcon.Warning);
            if (result == DialogResult.Yes)
            {
                this.Close();
            }
        }

3- btnOK_Clicked

Verifica URL informada e obtém os dados da URL e exibe na caixa de texto

        private void btnOK_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txtUrl.Text))
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(txtUrl.Text);
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    Stream receiveStream = response.GetResponseStream();
                    StreamReader readStream = null;
                    if (String.IsNullOrWhiteSpace(response.CharacterSet))
                        readStream = new StreamReader(receiveStream);
                    else
                        readStream = new StreamReader(receiveStream, Encoding.GetEncoding(response.CharacterSet));
                    string data = readStream.ReadToEnd();
                    txtResultado.Text = data;
                    response.Close();
                    readStream.Close();
                }
            }
            else
            {
                MessageBox.Show("INforme a URL de destino...");
            }
        }

Simples assim...

Executando o projeto teremos:

Pegue o projeto aqui : WinForm_NetCore1.zip (sem as referências)

"Mas, não vos alegreis porque se vos sujeitem os espíritos; alegrai-vos antes por estarem os vossos nomes escritos nos céus."
Lucas 10:20

Referências:


José Carlos Macoratti