Csharp/C Sharp by API/System.Windows.Forms/SaveFileDialog

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

new SaveFileDialog()

<source lang="csharp"> using System; using System.Drawing; using System.IO; using System.Windows.Forms;

class ImageOpen: Form {

    protected string strProgName;
    protected string strFileName;
    protected Image  image;
    MenuItem miSaveAs;
    public static void Main()
    {
         Application.Run(new ImageOpen());
    }
    public ImageOpen()
    {
         ResizeRedraw = true;
  
         Menu = new MainMenu();
         Menu.MenuItems.Add("&File");
         Menu.MenuItems[0].MenuItems.Add(new MenuItem("&Open...", 
                                  new EventHandler(MenuFileOpenOnClick),
                                  Shortcut.CtrlO));
         Menu.MenuItems[0].Popup += new EventHandler(MenuFileOnPopup);
         miSaveAs = new MenuItem("Save &As...");
         miSaveAs.Click += new EventHandler(MenuFileSaveAsOnClick);
         Menu.MenuItems[0].MenuItems.Add(miSaveAs);
    }
    void MenuFileOnPopup(object obj, EventArgs ea)
    {
         miSaveAs.Enabled = (image != null);
    }
    void MenuFileSaveAsOnClick(object obj, EventArgs ea)
    {
         SaveFileDialog savedlg = new SaveFileDialog();
  
         savedlg.InitialDirectory = Path.GetDirectoryName(strFileName);
         savedlg.FileName = Path.GetFileNameWithoutExtension(strFileName);
         savedlg.AddExtension = true;
         savedlg.Filter = "Windows Bitmap (*.bmp)|*.bmp|" +
                          "Graphics Interchange Format (*.gif)|*.gif|" +
                          "JPEG File Interchange Format (*.jpg)|" +
                             "*.jpg;*.jpeg;*.jfif|" +
                          "Portable Network Graphics (*.png)|*.png|" +
                          "Tagged Imaged File Format (*.tif)|*.tif;*.tiff";
  
         if (savedlg.ShowDialog() == DialogResult.OK)
         {
              try
              {
                   image.Save(savedlg.FileName);
              }
              catch (Exception exc)
              {
                   MessageBox.Show(exc.Message, Text);
                   return;
              }
              strFileName = savedlg.FileName;
              Text = strProgName + " - " + Path.GetFileName(strFileName);
         }
    }
    void MenuFileOpenOnClick(object obj, EventArgs ea)
    {
         OpenFileDialog dlg = new OpenFileDialog();
  
         dlg.Filter = "All Image Files|*.bmp;*.ico;*.gif;*.jpeg;*.jpg;" +
                             "*.jfif;*.png;*.tif;*.tiff;*.wmf;*.emf|" +
                      "Windows Bitmap (*.bmp)|*.bmp|" +
                      "Windows Icon (*.ico)|*.ico|" +
                      "Graphics Interchange Format (*.gif)|*.gif|" +
                      "JPEG File Interchange Format (*.jpg)|" +
                             "*.jpg;*.jpeg;*.jfif|" +
                      "Portable Network Graphics (*.png)|*.png|" +
                      "Tag Image File Format (*.tif)|*.tif;*.tiff|" +
                      "Windows Metafile (*.wmf)|*.wmf|" +
                      "Enhanced Metafile (*.emf)|*.emf|" +
                      "All Files (*.*)|*.*";
  
         if (dlg.ShowDialog() == DialogResult.OK)
         {    
  
              try
              {
                   image = Image.FromFile(dlg.FileName);
              }
              catch (Exception exc)
              {
                   Console.WriteLine(exc.Message);
                   return;
              }
              strFileName = dlg.FileName;
              Text = Path.GetFileName(strFileName);
              Invalidate();
         }
    }
    protected override void OnPaint(PaintEventArgs pea)
    {
         Graphics grfx = pea.Graphics;
  
         if (image != null)
              grfx.DrawImage(image, 0, 0);
    }
    

}


 </source>


SaveFileDialog.CheckFileExists

<source lang="csharp"> using System; using System.Windows.Forms; class MainClass {

   static void Main(string[] args) {
       SaveFileDialog dlg = new SaveFileDialog();
       dlg.CheckFileExists = true;
       if (dlg.ShowDialog() == DialogResult.OK) {
           Console.WriteLine(dlg.FileName);
       }
   }

}

 </source>


SaveFileDialog.Filter

<source lang="csharp"> using System; using System.Windows.Forms; class MainClass {

   static void Main(string[] args) {
       SaveFileDialog dlg = new SaveFileDialog();
       dlg.Filter = "RichText Files (*.rtf)|*.RTF|Text Files (*.txt)|*.TXT" +
         "|All files (*.*)|*.*";
       if (dlg.ShowDialog() == DialogResult.OK) {
           Console.WriteLine(dlg.FileName);
       }
   }

}

 </source>


SaveFileDialog.InitialDirectory

<source lang="csharp">

using System; using System.Windows.Forms; class MainClass {

   static void Main(string[] args) {
       SaveFileDialog dlg = new SaveFileDialog();
       dlg.InitialDirectory = Application.StartupPath;
       if (dlg.ShowDialog() == DialogResult.OK) {
           Console.WriteLine(dlg.FileName);
       }
   }

}

 </source>