none
Botón guardar en MenuStrip para un RichTexBox RRS feed

  • Pregunta

  • Hola.

    Desearía saber como hago un botón que al presionarlo compruebe si el archivo que se esta editando existe y también si tiene cambios y, si esto ocurre, que guarde los cambios sin mostrar una ventana de guardar archivo, pero en caso contrario, hacer que muestre un SaveFileDialog para guardar el archivo ya que no existía previamente.

    Gracias de antemano


    Pablo Gonzalez - Programando el futuro

    sábado, 30 de julio de 2016 0:13

Respuestas

  • No tienes más que programarlo paso a paso, siguiendo exactamente las mismas instrucciones que has puesto en tu pregunta. Para comprobar si el archivo existe, llamas a System.IO.FIle.Exists, y te devolverá true o false. Eso lo pones en un IF, y si se cumple que existe, llamas a System.IO.FIle.WriteAllText para salvar el RTF (esto no muestra ninguna ventana), y en el ELSE llamas al SaveFileDialog que sí que muestra la ventana.
    sábado, 30 de julio de 2016 6:28

Todas las respuestas

  • No tienes más que programarlo paso a paso, siguiendo exactamente las mismas instrucciones que has puesto en tu pregunta. Para comprobar si el archivo existe, llamas a System.IO.FIle.Exists, y te devolverá true o false. Eso lo pones en un IF, y si se cumple que existe, llamas a System.IO.FIle.WriteAllText para salvar el RTF (esto no muestra ninguna ventana), y en el ELSE llamas al SaveFileDialog que sí que muestra la ventana.
    sábado, 30 de julio de 2016 6:28
  • Me podrás mandar un ejemplo para entenderte mejor?

    Pablo Gonzalez - Programando el futuro

    martes, 2 de agosto de 2016 0:55
  • Más o menos la parte principal es así:

    void Button1_Click(object sender, EventArgs e)
    {
        if (!HayCambios) return;
        if (File.Exists(nombreDelFichero)
        {
            File.WriteAllText(nombreDelFichero, richTextbox1.Rtf);
        }
        else
        {
            DialogResult res = openFileDialog1.ShowDialog();
            if (res==DialogResult.Ok)
            {
                File.WriteAllText(openFileDialog1.FIleName, richTextBox1.Rtf);
            }
        }
    }
    

    Este código presume que el nombre del fichero que quieres comprobar si existe lo metiste al principio en la variable nombreDelFichero, y que la variable HayCambios la inicializas a false al principio y la cambias a true dentro del evento change del richtextbox. También presume que el openFIleDialog1 lo has configurado en tiempo de diseño en el formulario; igualmente lo podrías instanciar por código y configurarlo cambiándole las propiedades.
    martes, 2 de agosto de 2016 6:41