/// <summary>
        /// Shows form
        /// </summary>
        /// <param name="sf">Object which shows form</param>
        public static void Show(this IShowForm sf)
        {
            sf.ShowForm();
            Form form = sf.Form as Form;

            if (form == null)
            {
                return;
            }
            if (forms.Contains(form))
            {
                if (form.IsDisposed)
                {
                    forms.Remove(form);
                }
                return;
            }
            else
            {
                forms.Add(form);
                if (sf is IEnabled)
                {
                    IEnabled en = sf as IEnabled;
                    form.FormClosed += (object senrer, FormClosedEventArgs ev) =>
                    {
                        try
                        {
                            if (forms.Contains(form))
                            {
                                forms.Remove(form);
                            }
                            if (!en.Enabled)
                            {
                                en.Enabled = true;
                            }
                        }
                        catch (Exception ex)
                        {
                            ex.ShowError(10);
                        }
                    };
                    if (en.Enabled)
                    {
                        en.Enabled = false;
                    }
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Test buffer with UI
 /// </summary>
 /// <param name="buffer">Byte buffer that contains scenario</param>
 /// <param name="binder">Serialization binder</param>
 /// <param name="pan">Desktop</param>
 /// <param name="ext">Extension</param>
 /// <param name="extd">Required extension</param>
 /// <returns>Test exception</returns>
 public Exception TestBuffer(byte[] buffer, SerializationBinder binder, PanelDesktop pan, string ext, string extd)
 {
     try
     {
         MemoryStream ms = new MemoryStream(buffer);
         pan.LoadFromStream(ms, binder, ext, extd);
         foreach (object o in pan.Controls)
         {
             if (o is IShowForm)
             {
                 IShowForm sf = o as IShowForm;
                 sf.ShowForm();
             }
         }
         pan.TempDelete();
     }
     catch (Exception e)
     {
         e.ShowError(10);
         return(TestException.GetRoot(e));
     }
     return(null);
 }