Aprenda C#

  • Página Inicial
  • Contato!
  • Tudo sobre C# Parte 1!
  • Tudo sobre C# Parte 2!
  • Tudo sobre C# Parte 3!
  • Tudo sobre C# Parte 4!
  • Tudo sobre C# Parte 5!
  • Tudo sobre C# Parte 6!
  • Tudo sobre C# Parte 7!
  • Tudo sobre C# Parte 8!
  • Tudo sobre C# Parte 9!
  • Tudo sobre C# Parte 10!
  • Tudo sobre C# Parte 10

    Criando um Browser

    Crie um projeto Windows Form e coloque um componente Web Browser nele. Note que ele ocupa todo o formulário, para isso, clique na setinha e em Desencaixar do Contâiner Pai, ocupe quase todo o frame deixando um espacinho acima, e mude o Dock para Bottom. Mude o name dele para brPrinc.

    Acima do WebBrowser, coloque um componente textBox e os botões Ir, Home, Voltar, Próximo, Parar, Atualizar, Pesquisar e Definir Home. Altere os names deles.

    Dentro da classe, crie esse método:

    
    private void navegar() {
        if(!txtUrl.Text.Trim().Equals("")) {
            brPrinc.Navigate(txtUrl.Text.Trim());
        } 
        else {
            MessageBox.Show("Digite algo na URL!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            txtUrl.Focus();
        }
    }
    
    

    Aí é só adicionar esse método no evento click do botão Ir, e no evento KeyDown do txtUrl, coloque isso:

    
    private void txtUrl_KeyDown(object sender, KeyEventArgs e) {
        if(e.KeyCode == Keys.Enter) {
            navegar();
        }
    }
    
    

    No evento de Home, coloque isso:

    
    private void btnHome_Click(object sender, EventArgs e) {
        // Crie uma variável local de nome home para isso, do tipo string com o valor null
        if(home == null) {
            brPrinc.GoHome();
        }
        else {
            brPrinc.Navigate(home);
        }
    }
    
    

    Adicione esses eventos manualmente no código, para habilitar os botões apenas quando tiver o voltar e o próximo:

    
    private void brPrinc_CanGoBackChanged(object sender, EventArgs e) { // Tem que seguir essa regra de nome
        btnVolt.Enabled = brPrinc.CanGoBack;
    }
    
    private void brPrinc_CanGoForwardChanged(object sender, EventArgs e) { // Idem acima
        btnProx.Enabled = brPrinc.CanGoForward;
    }
    
    

    E nos eventos de clique de Voltar e Próximo, faça isso:

    
    private void btnVolt_Click(object sender, EventArgs e) {
        brPrinc.GoBack();
    }
    
    private void btnProx_Click(object sender, EventArgs e) {
        brPrinc.GoForward();
    }
    
    

    Eventos de Parar, Atualizar e Pesquisar:

    
    private void btnPar_Click(object sender, EventArgs e) {
        brPrinc.Stop();
    }
    
    private void btnAtu_Click(object sender, EventArgs e) {
        brPrinc.Refresh();
    }
    
    private void btnPesq_Click(object sender, EventArgs e) {
        brPrinc.GoSearch();
    }
    
    

    E no Definir Home, coloque isso:

    
    private void btnDef_Click(object sender, EventArgs e) {
        home = txtUrl.Text.Trim();
    }
    
    

    PS: A Home padrão do programa é o MSN.

    Criando Instalador

    Para criar o instalador do programa C#, baixe o programa daqui: https://marketplace.visualstudio.com/items?itemName=visualstudioclient.MicrosoftVisualStudio2017InstallerProjects

    Depois de instalado, abra o projeto desejado e em Gerenciador de Soluções, vá em adicionar projeto e procure a opção Setup Wizard, crie uma pasta com o nome "instalador" dentro do projeto e salve o projeto lá. Clique em Avançar e escolha a opção Setup Windows Application. Na janela que abrir, marque a opção "Saída Primária" pelo menos, mas pode marcar a maioria (só deixe desmarcado "Arquivos de Origem", "Símbolos de Depuração" e "Arquivos de Documentação"). Em Avançar, adicione os arquivos externos de DLL (em C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\PrivateAssemblies\x86\) dentro de pastas com o nome x86 ou x64 (assim como bancos de dados SQLite, XML, etc., no caso de banco de dados é a DLL SQLite.Interop.dll). Vá em concluir.

    No projeto do instalador, vá em ApplicationFolder e adicione as pastas e os arquivos externos (como bancos SQLite). Podemos adicionar as DLLs faltantes também aí.

    Em Applications Folder, vá nas propriedades e em AlwaysCreate deixe true pra criar menus, deixe a opção DefaultLocation como [ProgramFilesFolder]\[ProductName] (retire o Manufactore). Em Gerenciador de Soluções, vá nas propriedades com o nome do projeto do instalador. Em Author coloque seu nome, em Description coloque a Descrição, em Manufactore coloque seu nome também, em ProductName coloque o nome da pasta do programa, em Título coloque o nome do programa e em Version defina a versão. Clique no projeto do instalador, compile o instalador e ele já estará pronto (o arquivo é o com extensão .msi).

    No caso de programas com SQLite, pode ser necessário adicionar essas linhas no arquivo csproj do projeto (arquivo de mesmo nome do projeto com a extensão csproj), na última linha antes do fechamento da tag Project:

    
    <PropertyGroup> 
        <ContentSQLiteInteropFiles>true</ContentSQLiteInteropFiles>
        <CopySQLiteInteropFiles>false</CopySQLiteInteropFiles>
        <CleanSQLiteInteropFiles>false</CleanSQLiteInteropFiles>
        <CollectSQLiteInteropFiles>false</CollectSQLiteInteropFiles>
    </PropertyGroup>
    
    

    PS: Para adicionar o atalho no Desktop e Menu, deixe o AlwaysCreate como true em ambas as pastas, em Application Folders, crie o atalho para a Saída Primária e arraste eles pra User's Desktop e User's Programs Menu (configure o ícone do programa o caminho do executável e o target para Saída Primária).