Visual – Dialogs – OpenFileDialog, SaveFileDialog, StreamReader e StreamWriter – C#

Publicado: 23 de abril de 2014 em C#

Em computação caixas de diálogo reutilizáveis ​​que são comuns a todas as aplicações, incluindo caixas de diálogo para abrir arquivos, salvar arquivos e impressão. Uma vez que estas caixas de diálogo são implementadas pelo sistema operacional, ou classes no caso de linguagens multi plataforma,  podem ser compartilhadas entre todos os aplicativos que são executados no sistema operacional, o que ajuda o usuário a experiência de consistência; quando os usuários estão familiarizados com o uso de uma caixa de diálogo de funcionamento fornecido pelo sistema em um aplicativo, eles não precisam aprender a usar essa caixa de diálogo em outras aplicações. Como essas caixas de diálogo estão disponíveis para todas as aplicações e porque ajudam a proporcionar uma experiência de usuário consistente.

Diálogos - Windows

Diálogos – Windows

OpenFileDialog

Solicita ao usuário abrir um arquivo.

SaveFileDialog

Solicita que o usuário selecione um local para salvar um arquivo.

StreamReader

Implementa um leitor de texto que lê caracteres a partir de um fluxo de bytes em uma codificação específica.

StreamWriter

Implementa um escritor de texto para escrever caracteres para um fluxo em uma codificação específica.

Exemplo:

Neste exemplo usamos as caixas de diálogos no modo abrir e salvar arquivos para executar estes eventos sobre uma área de texto através de um Stream de escrita e leitura.

C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

// Adiciona namespace de manipulação de Entrada e Saida
using System.IO; 

namespace Dialogoscs
{
    public partial class Form1 : Form
    {
        // Declara componentes
        Label rotulo;
        RichTextBox texto;
        Button botao1, botao2;
        OpenFileDialog abrir;
        SaveFileDialog salvar;
        StreamReader ler;
        StreamWriter gravar;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            // Define texto do formulario
            this.Text = "DA - Dialogos";

            // Cria componentes
            rotulo = new Label();
            texto = new RichTextBox();
            botao1 = new Button();
            botao2 = new Button();

            // Define tamanho dos componentes
            rotulo.Size = new Size(300,20);
            texto.Size = new Size(240,170);

            // Define posição dos componentes
            rotulo.Location = new Point(0, 10);
            texto.Location = new Point(20, 30);
            botao1.Location = new Point(20, 220);
            botao2.Location = new Point(100, 220);

            // Define propriedades dos componentes
            rotulo.Text = "Digite abra ou salve um texto";
            rotulo.TextAlign = ContentAlignment.TopCenter;

            texto.ScrollBars = RichTextBoxScrollBars.Vertical;

            botao1.Text = "Abrir";
            botao2.Text = "Salvar";

            // Cria eventos para os botões
            botao1.Click += new System.EventHandler(this.botao1_Click);
            botao2.Click += new System.EventHandler(this.botao2_Click);

            // Adiciona componentes ao formulario
            this.Controls.Add(rotulo);
            this.Controls.Add(texto);
            this.Controls.Add(botao1);
            this.Controls.Add(botao2);

        }

        private void botao1_Click(object sender, EventArgs e)
        {
            // Abre e define propriedades para um dialogo
            abrir = new OpenFileDialog();
            abrir.Filter = "Textos (*.txt)|*.txt";

            if (abrir.ShowDialog() == DialogResult.OK)
            {

                // Lê um arquivo definido no dialogo
                using( ler = new StreamReader(abrir.OpenFile()))
                {
                    String linha = ler.ReadToEnd();
                    texto.Text = linha;

                }
            }

        }

        private void botao2_Click(object sender, EventArgs e)
        {
            // Abre e define propriedades do dialogo
            salvar = new SaveFileDialog();
            salvar.Filter = "Textos (*.txt)|*.txt";

            if (salvar.ShowDialog() == DialogResult.OK)
            {
                // Grava um arquivo baseado na area de texto
                using(gravar = new StreamWriter(salvar.OpenFile()))
                {
                    gravar.Write(texto.Text);
                }
            }
        }
    }
}
Publicidade

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s