jueves, 3 de noviembre de 2016

Práctica 12. Bloc de Notas

Práctica 12. Bloc de Notas

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