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