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.
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);
}
}
}
}
}


