Example #1
0
        /// <summary>
        /// Opens a OpenFileDialog window and returns a DialogResult if blocking otherwise dialog.ok
        /// </summary>
        /// <param name="fbd">Reference to a OpenFileDialog</param>
        /// <param name="onfinish">If a delegate is passed, then it doesn't block.</param>
        /// <returns></returns>
        public static DialogResult OpenFileDialog(ref OpenFileDialog fbd, onDialogFinished onfinish = null)
        {
            if (!Directory.Exists(fbd.InitialDirectory))
            {
                if (Directory.Exists(Path.Combine(Environment.CurrentDirectory, fbd.InitialDirectory)))
                {
                    fbd.InitialDirectory = Path.Combine(Environment.CurrentDirectory, fbd.InitialDirectory);
                }
                else
                {
                    fbd.InitialDirectory = Environment.CurrentDirectory;
                }
            }
            DialogResult dr     = new DialogResult();
            Oper         o      = new Oper(ref fbd, ref dr);
            Thread       thread = new Thread(() => OpenFileDialog_DoWork(o));

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            if (onfinish != null)
            {
                return(DialogResult.OK);
            }
            while (!o._isFinished)
            {
                Thread.Sleep(100);
            }
            return(o._dr);
        }
Example #2
0
 /// <summary>
 /// Opens a "FileDialog" prompt window and returns the Dialog Result if blocking, otherwise DialogResult.OK.
 /// Call will block if a delegate isn't passed.
 /// </summary>
 /// <param name="fd">Reference of a FileDialog </param>
 /// <param name="onfinish">If a delegate is passed, then it doesn't block.</param>
 /// <returns></returns>
 public static DialogResult FileDialog(ref FileDialog fd, onDialogFinished onfinish = null)
 {
     DialogResult dr = new DialogResult();
     Oper o = new Oper(ref fd, ref dr) {_callback = onfinish};
     Thread thread = new Thread(() => FileDialog_DoWork(o));
     thread.SetApartmentState(ApartmentState.STA);
     thread.Start();
     if (onfinish != null)
         return DialogResult.OK;
     while (!o._isFinished)
         Thread.Sleep(100);
     return o._dr;
 }
Example #3
0
        /// <summary>
        /// Opens a SaveFileDialog and returns a Dialogresult if blocking otherwise a dialog.ok
        /// </summary>
        /// <param name="fbd">Reference to a SaveFileDialog</param>
        /// <param name="onfinish">If a delegate is passed, then it doesn't block.</param>
        /// <returns></returns>
        public static DialogResult SaveFileDialog(ref SaveFileDialog fbd, onDialogFinished onfinish = null)
        {
            DialogResult dr     = new DialogResult();
            Oper         o      = new Oper(ref fbd, ref dr);
            Thread       thread = new Thread(() => SaveFileDialog_DoWork(o));

            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            if (onfinish != null)
            {
                return(DialogResult.OK);
            }
            while (!o._isFinished)
            {
                Thread.Sleep(100);
            }
            return(o._dr);
        }
Example #4
0
 /// <summary>
 /// Opens a OpenFileDialog window and returns a DialogResult if blocking otherwise dialog.ok
 /// </summary>
 /// <param name="fbd">Reference to a OpenFileDialog</param>
 /// <param name="onfinish">If a delegate is passed, then it doesn't block.</param>
 /// <returns></returns>
 public static DialogResult OpenFileDialog(ref OpenFileDialog fbd, onDialogFinished onfinish = null)
 {
     if (!Directory.Exists(fbd.InitialDirectory))
         {
         if (Directory.Exists(Path.Combine(Environment.CurrentDirectory, fbd.InitialDirectory)))
             fbd.InitialDirectory = Path.Combine(Environment.CurrentDirectory, fbd.InitialDirectory);
         else
             fbd.InitialDirectory = Environment.CurrentDirectory;
         }
     DialogResult dr = new DialogResult();
     Oper o = new Oper(ref fbd, ref dr);
     Thread thread = new Thread(() => OpenFileDialog_DoWork(o));
     thread.SetApartmentState(ApartmentState.STA);
     thread.Start();
     if (onfinish != null)
         return DialogResult.OK;
     while (!o._isFinished)
         Thread.Sleep(100);
     return o._dr;
 }