Esempio n. 1
0
        private Form GetForm(Type type)
        {
            Form form;

            if (formsObject.ContainsKey(type.FullName))
            {
                form = formsObject[type.FullName];
            }
            else
            {
                if (TypeHaveParameterLessConstructor(type))
                {
                    form = (Form)Activator.CreateInstance(type);
                }
                else
                {
                    ConstructorInfo firstConstructor      = type.GetConstructors()[0];
                    ParameterInfo[] constructorParameters = firstConstructor.GetParameters();
                    List <object>   args = new List <object>(constructorParameters.Length);
                    foreach (var parameter in constructorParameters)
                    {
                        Forms.GetValue getParameterForm = new GetValue("مقدار دهی پارامتر " + parameter.Name, "پارامتر " + parameter.Name + " سازنده فرم " + type.Name + " را وارد کنید", GetDefaultValue(parameter.ParameterType));
                        getParameterForm.ShowDialog();
                        if (parametersValues.ContainsKey(parameter))
                        {
                            args.Add(parametersValues[parameter]);
                        }
                        else
                        {
                            object convertedVaue = getParameterForm.Value == "NULL" ? null : getParameterForm.Value;
                            Njit.Common.PublicMethods.ConvertValue(getParameterForm.Value, ref convertedVaue, parameter.ParameterType);
                            args.Add(convertedVaue);
                            parametersValues.Add(parameter, convertedVaue);
                        }
                    }
                    try
                    {
                        form = (Form)Activator.CreateInstance(type, args.ToArray());
                    }
                    catch (Exception ex)
                    {
                        PersianMessageBox.Show(this, "خطا در ایجاد شی از فرم\r\n" + type.Name + "\r\n\r\n" + ex.Message);
                        form = null;
                    }
                }
                formsObject.Add(type.FullName, form);
            }
            return(form);
        }
Esempio n. 2
0
 private void btnNewFolder_Click(object sender, EventArgs e)
 {
     if (folderBrowserControl.SelectedPath == null)
     {
         return;
     }
     Forms.GetValue f = new GetValue("ساخت پوشه جدید", "نام پوشه را وارد کنید", "");
     if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
     {
         try
         {
             folderBrowserControl.CreateDirectory(f.Value);
         }
         catch (Exception ex)
         {
             PersianMessageBox.Show(this, "خطا در ایجاد پوشه" + "\r\n\r\n" + ex.Message);
             return;
         }
     }
 }