Inheritance: System.Windows.Forms.Form
        private void SolicitarDatos(FormDatos1 frm, string Ambito_Op, string Ley, string titulo_del_Formulario, string Rotulo_del_Parametro1,
            string Rotulo_del_Parametro2, string Rotulo_del_Parametro3,
            string Rotulo_del_Parametro4, string Rotulo_del_Parametro5,
            string Nombre_Parametro1, string Nombre_Parametro2,
            string Nombre_Parametro3, string Nombre_Parametro4, string Nombre_Parametro5, string Rotulo_del_Parametro6, string Nombre_Parametro6)
        {
            //Dar contenidos a las variables del formulario de captura de indicaciones de usuario
            frm.TituloDelFormulario = titulo_del_Formulario;
            frm.Text = Ambito_Op;
            frm.Rotulo_Parametro1 = Rotulo_del_Parametro1;
            frm.Rotulo_Parametro2 = Rotulo_del_Parametro2;
            frm.Rotulo_Parametro3 = Rotulo_del_Parametro3;
            frm.Rotulo_Parametro4 = Rotulo_del_Parametro4;
            frm.Rotulo_Parametro5 = Rotulo_del_Parametro5;
            frm.Rotulo_Parametro6 = Rotulo_del_Parametro6;

            //Llamar al formulario de captura de indicaciones de usuario
            frm.ShowDialog();

            //dar valores a las variables de este formulario en base a las indicaciones de usuario
            if (frm.DialogResult == DialogResult.OK)
            {
                limpiar_diccionarios();

                if (Rotulo_del_Parametro1 != "") parametros[Nombre_Parametro1] = Convert.ToDouble(frm.parametro1);
                if (Rotulo_del_Parametro2 != "") parametros[Nombre_Parametro2] = Convert.ToDouble(frm.parametro2);
                if (Rotulo_del_Parametro3 != "") parametros[Nombre_Parametro3] = Convert.ToDouble(frm.parametro3);
                if (Rotulo_del_Parametro4 != "") parametros[Nombre_Parametro4] = Convert.ToDouble(frm.parametro4);
                if (Rotulo_del_Parametro5 != "") parametros[Nombre_Parametro5] = Convert.ToDouble(frm.parametro5);
                if (Rotulo_del_Parametro6 != "") parametros[Nombre_Parametro6] = Convert.ToDouble(frm.parametro6);

                //Alimentar el Textbox de las opciones elegidas por el usuario
                if ((Rotulo_del_Parametro1 != "") || (Rotulo_del_Parametro2 != "") || (Rotulo_del_Parametro3 != "") || (Rotulo_del_Parametro4 != "") || (Rotulo_del_Parametro5 != "") || (Rotulo_del_Parametro6 != ""))
                {
                    textBox11.Enabled = true;
                    textBox11.Text += "\r\n" + "\b " + Ambito_Op + titulo_del_Formulario + "\r\n";
                    if (Rotulo_del_Parametro1 != "") textBox11.Text += "   " + Rotulo_del_Parametro1 + "= " + Convert.ToString(parametros[Nombre_Parametro1]) + "\r\n";
                    if (Rotulo_del_Parametro2 != "") textBox11.Text += "   " + Rotulo_del_Parametro2 + "= " + Convert.ToString(parametros[Nombre_Parametro2]) + "\r\n";
                    if (Rotulo_del_Parametro3 != "") textBox11.Text += "   " + Rotulo_del_Parametro3 + "= " + Convert.ToString(parametros[Nombre_Parametro3]) + "\r\n";
                    if (Rotulo_del_Parametro4 != "") textBox11.Text += "   " + Rotulo_del_Parametro4 + "= " + Convert.ToString(parametros[Nombre_Parametro4]) + "\r\n";
                    if (Rotulo_del_Parametro5 != "") textBox11.Text += "   " + Rotulo_del_Parametro5 + "= " + Convert.ToString(parametros[Nombre_Parametro5]) + "\r\n";
                    if (Rotulo_del_Parametro6 != "") textBox11.Text += "   " + Rotulo_del_Parametro6 + "= " + Convert.ToString(parametros[Nombre_Parametro6]) + "\r\n";
                    textBox11.Text += "             " + "\r\n";
                }

            }
        }
        private void comboBox5_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox5.Text == "No activado")
            {
                nombres["preventivo"] = "No activado";
                nombres.Remove("tipo_de_preventivo");
                parametros.Remove("tiempo_entre_preventivos");
                parametros.Remove("disponibilidad_minima_admisible");
            }

            if (comboBox5.Text == "Fijo por tiempo")
            {
                FormDatos1 frm = new FormDatos1();
                nombres["preventivo"] = "Activado";
                nombres["tipo_de_preventivo"] = "Fijo por tiempo";
                parametros.Remove("disponibilidad_minima_admisible");
                SolicitarDatos(frm, "PREVENTIVO", "", "MANTENIMIENTO PREVENTIVO FIJO POR TIEMPO", "Tiempo entre Preventivos (Udes. de Tiempo)",
                                    "", "","", "","tiempo_entre_preventivos", "","", "", "", "", "");
            }

            if (comboBox5.Text == "Por Disponibilidad")
            {

                //parametros["disponibilidad_minima_admisible"]=100;

                FormDatos1 frm = new FormDatos1();
                nombres["preventivo"] = "Activado";
                nombres["tipo_de_preventivo"] = "Por Disponibilidad";
                parametros.Remove("tiempo_entre_preventivos");
                SolicitarDatos(frm, "PREVENTIVO", "", "MANTENIMIENTO POR DISPONIBILIDAD", "Disponibilidad Mínima Admisible (%)",
                                    "", "", "", "", "disponibilidad_minima_admisible", "", "", "", "", "", "");

            }
        }
        private void ElegirLeySolicitarDatos(string Ambito, string palabra_clave, string sufijo2, string nombre_de_ley, string nombre_de_campo_y_combo_Box)
        {
            terminos_a_eliminar_en_diccionarios[sufijo2 + "_Mantenimiento_Ud_Tiempo"] = "parametros";
                terminos_a_eliminar_en_diccionarios[sufijo2 + "_Perdida_Prod_por_Ud_tiempo"] = "parametros";
                terminos_a_eliminar_en_diccionarios[sufijo2 + "_MantenimientoCadaIntervencion"]="parametros";
                terminos_a_eliminar_en_diccionarios["X1_" + sufijo2]="parametros";
                terminos_a_eliminar_en_diccionarios["Y1_" + sufijo2]="parametros";
                terminos_a_eliminar_en_diccionarios["X2_" + sufijo2]="parametros";
                terminos_a_eliminar_en_diccionarios["Y2_" + sufijo2]="parametros";
                terminos_a_eliminar_en_diccionarios["ley_" + sufijo2 + "_param1"]="parametros";
                terminos_a_eliminar_en_diccionarios["ley_" + sufijo2 + "_param2"]="parametros";
                terminos_a_eliminar_en_diccionarios["Minimo_" + sufijo2]="parametros";
                terminos_a_eliminar_en_diccionarios["Maximo_" + sufijo2] = "parametros";
                terminos_a_eliminar_en_diccionarios["ley_" + sufijo2]="parametros";
                //terminos_a_eliminar_en_diccionarios["ley_coste_" + sufijo2 + "_param1"]="parametros";
                //terminos_a_eliminar_en_diccionarios["ley_coste_" + sufijo2 + "_param2"]="parametros";
                //terminos_a_eliminar_en_diccionarios["Minimo_" + sufijo2]="parametros";
                //terminos_a_eliminar_en_diccionarios["Maximo_" + sufijo2] = "parametros";

            FormDatos1 frm = new FormDatos1();

            if (nombre_de_campo_y_combo_Box == "Ninguna Ley")
            {
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                limpiar_diccionarios();
            }

            if (nombre_de_campo_y_combo_Box == "Siempre a Nuevo (GAN)")
            {
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                limpiar_diccionarios();
            }

            if (nombre_de_campo_y_combo_Box == "Según tiempo (BAO)")
            {
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                limpiar_diccionarios();
            }

            if (nombre_de_campo_y_combo_Box == "Desglose de Costes")
            {
                limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;

                //Se hacen visibles y habilitan las opciones de desglose de Coste
                HacerVisibleDesgloseCoste();
                HabilitarComboBoxDesgloseCoste();
            }

            if (nombre_de_campo_y_combo_Box == "Desglose de Fallos")
            {
                limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;

                //Se habilitan las opciones de desglose de Fallo
                HacerVisibleDesgloseTiempoFallo();
                HabilitarComboBoxDesgloseTiempoFallo();
            }

            //el siguiente if es solo aplicable a captura de datos de coste
            if (nombre_de_campo_y_combo_Box == "Fijo por tiempo")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley de Coste Fijo por tiempo ", "Coste Mto./Ud_tiempo", "Coste_Perdida_Prod_por_Ud_tiempo", "",
                                    "", "","ley_" + sufijo2 +"_param1", "ley_" + sufijo2 + "_param2",
                                    "", "", "","% reducción si Preventivo",sufijo2 +"_Reduccion_si_Preventivo");
            }

            //el siguiente if es solo aplicable a captura de datos de coste
            if (nombre_de_campo_y_combo_Box == "Fijo por intervención")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley de Coste Fijo cada Intervención ", "Coste cada Intervención", "Coste_Perdida_Prod_por_Ud_tiempo", "",
                    "", "", "ley_" + sufijo2 + "_param1", "ley_" + sufijo2 + "_param2",
                    "", "", "", "% reducción si Preventivo", sufijo2 + "_Reduccion_si_Preventivo");
            }

            if (nombre_de_campo_y_combo_Box == "Fijo")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                string auxi1="";
                string auxi2="";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: ")
                {
                    auxi1 = "Coste Perdida_Prod / Ud_tiempo";
                    auxi2 = "_Perdida_Prod_por_Ud_tiempo";
                }

                string auxi3="";
                string auxi4="";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: " || Ambito == "FALLO/PARADA: " || Ambito == "DESGLOSE DE FALLO/PARADA: ")
                {
                    auxi3 = "% reducción si Preventivo";
                    auxi4 = sufijo2 + "_Reduccion_si_Preventivo";
                }

                string auxi5 = "Tiempo de ";
                if (Ambito == "EFICIENCIA DEL MANTENIMIENTO: ") auxi5 = " "; ;

                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley Fija de " + palabra_clave, auxi5 + palabra_clave, "", "",
                                    "", auxi1, "ley_" + sufijo2 + "_param1", "",
                                    "", "", sufijo2 + auxi2, auxi3, auxi4);
            }

            if (nombre_de_campo_y_combo_Box == "Uniforme")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                string auxi1 = "";
                string auxi2 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: ")
                {
                    auxi1 = "Coste Perdida_Prod / Ud_tiempo";
                    auxi2 = "_Perdida_Prod_por_Ud_tiempo";
                }

                string auxi3 = "";
                string auxi4 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: " || Ambito == "FALLO/PARADA: " || Ambito == "DESGLOSE DE FALLO/PARADA: ")
                {
                    auxi3 = "% reducción si Preventivo";
                    auxi4 = sufijo2 + "_Reduccion_si_Preventivo";
                }

                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley Uniforme de " + palabra_clave, "", "", "Mínimo Admisible",
                                    "Máximo Admisible", auxi1, "", "",
                                    "Minimo_" + sufijo2, "Maximo_" + sufijo2, sufijo2 + auxi2, auxi3, auxi4);
            }

            if (nombre_de_campo_y_combo_Box == "Línea recta")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                string auxi1 = "";
                string auxi2 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: ")
                {
                    auxi1 = "Coste Perdida_Prod / Ud_tiempo";
                    auxi2 = "_Perdida_Prod_por_Ud_tiempo";
                }

                string auxi3 = "";
                string auxi4 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: " || Ambito == "FALLO/PARADA: " || Ambito == "DESGLOSE DE FALLO/PARADA: ")
                {
                    auxi3 = "% reducción si Preventivo";
                    auxi4 = sufijo2 + "_Reduccion_si_Preventivo";
                }

                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley Lineal de " + palabra_clave, "Inicial T", "Inicial t " + palabra_clave, "Final T",
                                    "Final t " + palabra_clave, auxi1, "X1_" + sufijo2, "Y1_" + sufijo2,
                                     "X2_" + sufijo2, "Y2_" + sufijo2, sufijo2 + auxi2, auxi3, auxi4);
            }

            if (nombre_de_campo_y_combo_Box == "Exponencial")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                string auxi1 = "";
                string auxi2 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: ")
                {
                    auxi1 = "Coste Perdida_Prod / Ud_tiempo";
                    auxi2 = "_Perdida_Prod_por_Ud_tiempo";
                }

                string auxi3 = "";
                string auxi4 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: " || Ambito == "FALLO/PARADA: " || Ambito == "DESGLOSE DE FALLO/PARADA: ")
                {
                    auxi3 = "% reducción si Preventivo";
                    auxi4 = sufijo2 + "_Reduccion_si_Preventivo";
                }

                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley Exponencial de " + palabra_clave, "Gamma", "Lambda", "Mínimo Admisible",
                                    "Máximo Admisible", auxi1, "ley_" + sufijo2 + "_param1", "ley_" + sufijo2 + "_param2",
                                    "Minimo_" + sufijo2, "Maximo_" + sufijo2, sufijo2 + auxi2, auxi3, auxi4);
            }

            if (nombre_de_campo_y_combo_Box == "Weibull2P")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                string auxi1 = "";
                string auxi2 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: ")
                {
                    auxi1 = "Coste Perdida_Prod / Ud_tiempo";
                    auxi2 = "_Perdida_Prod_por_Ud_tiempo";
                }

                string auxi3 = "";
                string auxi4 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: " || Ambito == "FALLO/PARADA: " || Ambito == "DESGLOSE DE FALLO/PARADA: ")
                {
                    auxi3 = "% reducción si Preventivo";
                    auxi4 = sufijo2 + "_Reduccion_si_Preventivo";
                }

                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley Weibull2P de " + palabra_clave, "Beta", "Eta", "Mínimo Admisible",
                                    "Máximo Admisible", auxi1, "ley_" + sufijo2 + "_param1", "ley_" + sufijo2 + "_param2",
                                    "Minimo_" + sufijo2, "Maximo_" + sufijo2, sufijo2 + auxi2, auxi3, auxi4);
            }

            if (nombre_de_campo_y_combo_Box == "Normal")
            {
                //limpiar_diccionarios();
                nombres[nombre_de_ley] = nombre_de_campo_y_combo_Box;
                string auxi1="";
                string auxi2="";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: ")
                {
                    auxi1 = "Coste Perdida_Prod / Ud_tiempo";
                    auxi2 = "_Perdida_Prod_por_Ud_tiempo";
                }

                string auxi3 = "";
                string auxi4 = "";
                if (Ambito == "COSTE DESGLOSADO: " || Ambito == "COSTE SIN DESGLOSE: " || Ambito == "FALLO/PARADA: "  || Ambito == "DESGLOSE DE FALLO/PARADA: ")
                {
                    auxi3 = "% reducción si Preventivo";
                    auxi4 = sufijo2 + "_Reduccion_si_Preventivo";
                }

                SolicitarDatos(frm, Ambito, nombres[nombre_de_ley], "Ley Normal de " + palabra_clave, "Valor Medio", "Desviación Típica", "Mínimo Admisible",
                                    "Máximo Admisible", auxi1, "ley_" + sufijo2 + "_param1", "ley_" + sufijo2 + "_param2",
                                    "Minimo_" + sufijo2, "Maximo_" + sufijo2, sufijo2 + auxi2, auxi3, auxi4);
            }
        }
        private void Subform(string title, string ambito, string ley, Hashtable fields)
        {
            FormDatos1 form = new FormDatos1();
            form.title = title;
            form.Text = ambito;
            form.fields = fields;
            form.extParameters = _parameters;

            form.ShowDialog();
            if (form.DialogResult == DialogResult.OK)
            {
                AddParameters(form.parameters);
            }
        }