private void formClick(object sender, System.EventArgs e) { CNDCMenuItemOracle mi = (CNDCMenuItemOracle)sender; if (mi.DropDownItems.Count > 0) { return; } if (mi.Ensamblado.Trim() == string.Empty || mi.Clase.Trim() == string.Empty) { MessageBox.Show("Opcion no implementada"); } else { try { Assembly asm = null; if (_dicEnsamblados.ContainsKey(mi.Ensamblado)) { asm = _dicEnsamblados[mi.Ensamblado]; } else { PistaMgr.Instance.Debug("MenuQuantum", "Cargando assembly " + mi.Ensamblado); asm = Assembly.LoadFile(System.IO.Path.Combine(Application.StartupPath, mi.Ensamblado)); _dicEnsamblados[mi.Ensamblado] = asm; } PistaMgr.Instance.Debug("MenuQuantum", "Instanciando Clase " + mi.Clase); IFuncionalidad form = (IFuncionalidad)asm.CreateInstance(mi.Clase); form.Parametros = new ParametrosFuncionalidad(mi.Parametro); if (e is ParametroExtra) { form.Parametros.ParametroExtra = (ParametroExtra)e; } PistaMgr.Instance.Debug("MenuQuantum", "Ejecutando Funcionalidad " + mi.Clase); form.Ejecutar(); PistaMgr.Instance.Debug("MenuQuantum", "Ejecucion Funcionalidad [" + mi.Clase + "] Finalizada"); if (_padre != null && !(e is ParametroExtra)) { _padre.Recargar(); } } catch (Exception ex) { PistaMgr.Instance.Error("MenuQuantum", ex); PistaMgr.Instance.Debug("MenuQuantum", ex); } } }
private void CrearMenus(DataTable odr) { decimal NumOpcion = 0; string Descripcion = string.Empty; decimal OpcionMadre = 0; string ensamblado = string.Empty; string clase = string.Empty; string parametro = string.Empty; decimal icon = 0; string param = string.Empty; long d_tipo_opcion_menu = 0; System.Drawing.Font font = GetFontBase(); CNDCMenuItemOracle item = null; foreach (DataRow r in odr.Rows) { NumOpcion = ObjetoDeNegocio.GetValor <long>(r["num_opcion"]); OpcionMadre = ObjetoDeNegocio.GetValor <long>(r["num_opcion_madre"]); Descripcion = ObjetoDeNegocio.GetValor <string>(r["descripcion_opcion"]); ensamblado = ObjetoDeNegocio.GetValor <string>(r["ensamblado"]); clase = ObjetoDeNegocio.GetValor <string>(r["clase"]); parametro = ObjetoDeNegocio.GetValor <string>(r["parametro"]); icon = ObjetoDeNegocio.GetValor <long>(r["icon"]); d_tipo_opcion_menu = ObjetoDeNegocio.GetValor <long>(r["d_tipo_opcion_menu"]); item = new CNDCMenuItemOracle(Descripcion, ensamblado, clase, parametro, icon, new EventHandler(formClick), font, false); _dicItems[(long)NumOpcion] = item; if ((D_TIPO_OPCION_MENU)d_tipo_opcion_menu == D_TIPO_OPCION_MENU.OPCION_INTERNA) { } else if (OpcionMadre == 0) { this.Items.Add(item); } else { _dicItems[(long)OpcionMadre].DropDownItems.Add(item); } } Items.Add(new CNDCMenuItemOracle("Salir", "", "", "", 0, new EventHandler(salirClick), font, true)); }