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); }
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; } } }