Objetivo:
Diseñar un proyecto en C# que sirva como un Bloc de Notas.
Código:
namespace Practica_12
{
public partial class Form1 : Form
{
private string m_sfileName = "";
public Form1()
{
InitializeComponent();
clearFormText();
rtfMain.WordWrap=false;
mnvAjusteLinea.Checked=false;
}
private void clearFormText()
{
this.Text="Bloc de notas -[sin-nombre]";
}
private void mnvAcercade_Click(object sender, EventArgs e)
{
FrmAcercade fAb = new FrmAcercade();
fAb.ShowDialog();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void mnvSalir_Click(object sender, EventArgs e)
{
if(rtfMain.Modified==true)
{
if(MessageBox.Show("El texto ha cambiado \n¿Realmente deseas salir?",
"Confirmar salida",MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.Yes)
{
Application.Exit();
}
}
else
{
Application.Exit();
}
}
private void mnvArchivoNuevo_Click(object sender, EventArgs e)
{
if (rtfMain.Modified == true)
{
if (MessageBox.Show("El texto ha cambiado \n¿Realmente deseas crear un nuevo documento?",
"Crear nuevo documento", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
rtfMain.Clear();
m_sfileName=""; // Limia el nombre del archivo
clearFormText(); // y resetea el caption del formulario
}
}
else
{
rtfMain.Clear();
m_sfileName = ""; // Limia el nombre del archivo
clearFormText(); // y resetea el caption del formulario
}
}
private void mnvArchivo_Click(object sender, EventArgs e)
{
}
private void mnvAbrir_Click(object sender, EventArgs e)
{
bool bDoOpen = true;
// muestra una caja de dialogo OPen File y abre el archivo,
//pero checa que la caja de texto no haya cambiado
if (rtfMain.Modified == true)
{
if (MessageBox.Show("El texto ha cambiado - desea abrir otro documento?",
"Confirmar abrir el documento", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
bDoOpen = false; //si en un if hay una sola insruccion no se ponen llaves
}
if (bDoOpen == true)
{
openFileDialog1.Filter="Archivos de texto (*.txt)|*.txt|Todos los archivos(*.*)|*.*";
openFileDialog1.FilterIndex=1;
if(openFileDialog1.ShowDialog()==DialogResult.OK && openFileDialog1.FileName.Length>0)
{
rtfMain.LoadFile(openFileDialog1.FileName, RichTextBoxStreamType.PlainText);
rtfMain.Modified = false;
m_sfileName = openFileDialog1.FileName;
setFormText(m_sfileName);
}
}
}
private void setFormText(String sFile)
{
// Crea una instancia de una clase FileInfo
// y la usa para no poner el path
System.IO.FileInfo fInfo;
fInfo = new System.IO.FileInfo(sFile);
this.Text= "Bloc de notas - [" + fInfo.Name + "]";
}
private void mnvGuardar_Click(object sender, EventArgs e)
{
// Guardar el archivo si tenemos un nombre de archivo
if (m_sfileName != "")
rtfMain.SaveFile(m_sfileName, RichTextBoxStreamType.PlainText);
else
mnvGuardarComo_Click(sender, e);
}
private void mnvGuardarComo_Click(object sender, EventArgs e)
{
//Si tenemos un nombre de archivo, se usa en el
//cuadro de diálogo, si no se pone un nombre
//generica
if (m_sfileName != "")
dlgSave.FileName = m_sfileName;
else
dlgSave.FileName = "Documento1";
dlgSave.Filter = "Archivos de texto (*.txt)|*.txt|Todos los archivos(*.*)|*.*";
dlgSave.FilterIndex = 1;
dlgSave.DefaultExt = "txt";
if (dlgSave.ShowDialog() == DialogResult.OK &&
dlgSave.FileName.Length > 0)
{
rtfMain.SaveFile(dlgSave.FileName,
RichTextBoxStreamType.PlainText);
rtfMain.Modified = false;
m_sfileName = dlgSave.FileName;
setFormText(m_sfileName);
}
}
private void mnvDeshacer_Click(object sender, EventArgs e)
{
rtfMain.Undo();
}
private void mnvRehacer_Click(object sender, EventArgs e)
{
rtfMain.Redo();
}
private void mnvSeleccionar_Click(object sender, EventArgs e)
{
rtfMain.SelectAll();
}
private void mnvCortar_Click(object sender, EventArgs e)
{
rtfMain.Cut();
}
private void mnvCopiar_Click(object sender, EventArgs e)
{
rtfMain.Copy();
}
private void mnvPegar_Click(object sender, EventArgs e)
{
rtfMain.Paste();
}
private void mnvLimpiar_Click(object sender, EventArgs e)
{
if (MessageBox.Show("¿Desea eliminar todo el texto?",
"Confirmar eliminar texto", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
rtfMain.Clear();
}
private void mnvAjusteLinea_Click(object sender, EventArgs e)
{
if (rtfMain.WordWrap == true)
{
rtfMain.WordWrap = false;
mnvAjusteLinea.Checked = false;
}
else
{
rtfMain.WordWrap = true;
mnvAjusteLinea.Checked = true;
}
}
private void mnvFuente_Click(object sender, EventArgs e)
{
dlgFont.Font = rtfMain.Font;
if (dlgFont.ShowDialog() == DialogResult.OK)
rtfMain.Font = dlgFont.Font;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (rtfMain.Modified == true)
{
if (MessageBox.Show("El texto ha cambiado -- ¿Desea salir?",
"Confirmar Salida", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
e.Cancel = true;
}
}
}
}
Autor: Eduardo Saavedra Pérez
No hay comentarios:
Publicar un comentario