/// <summary>
        /// Agrega un producto en la dataTable y la agrega a mi lista pantalones. Implemento SQLCommand Clase 21 y 22 (SQL y base de datos)
        /// Llama al otro form "ABMProducto", para que le carguen los datos y los guarde donde corresponda
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_agregar_Click(object sender, EventArgs e)
        {
            string ultimoId;
            int    id;

            try
            {
                ultimoId = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[0].Value.ToString();
            }
            catch (Exception)
            {
                ultimoId = "0";
            }
            id = int.Parse(ultimoId);
            ABMProducto formulario = new ABMProducto(id);

            try
            {
                if (formulario.ShowDialog() == DialogResult.OK)
                {
                    if (formulario.ProductoDelFormulario.Producto == "Pantalon(hombre)")
                    {
                        this.ph       = new PantalonHombre(formulario.pantalonHombre.Id, formulario.pantalonHombre.Producto, formulario.pantalonHombre.Modelo, formulario.pantalonHombre.Talle, formulario.pantalonHombre.Precio, formulario.pantalonHombre.tieneCordon);
                        this.miStock += ph;
                    }
                    else if (formulario.ProductoDelFormulario.Producto == "Pantalon(niño)")
                    {
                        this.pñ       = new PantalonNiño(formulario.PantalonNiño.Id, formulario.PantalonNiño.Producto, formulario.PantalonNiño.Modelo, formulario.PantalonNiño.Talle, formulario.PantalonNiño.Precio, formulario.PantalonNiño.TieneTachas);
                        this.miStock += pñ;
                    }
                    this.da.InsertCommand = new SqlCommand("INSERT INTO producto (producto,modelo,talle,precio) VALUE (@producto,@modelo,@talle,@precio)", cn);
                    this.da.InsertCommand.Parameters.Add("@producto", SqlDbType.VarChar, 50, "producto");
                    this.da.InsertCommand.Parameters.Add("@modelo", SqlDbType.VarChar, 50, "modelo");
                    this.da.InsertCommand.Parameters.Add("@talle", SqlDbType.Int, 10, "talle");
                    this.da.InsertCommand.Parameters.Add("@precio", SqlDbType.Float, 10, "precio");

                    DataRow fila = this.dt.NewRow();
                    fila[1] = formulario.ProductoDelFormulario.Producto;
                    fila[2] = formulario.ProductoDelFormulario.Modelo;
                    fila[3] = formulario.ProductoDelFormulario.Talle;
                    fila[4] = formulario.ProductoDelFormulario.Precio;
                    this.dt.Rows.Add(fila);
                }
            }
            catch (Exception ecx)
            {
                MessageBox.Show("Error" + ecx.Message);
            }
        }
        /// <summary>
        /// Pregunta si se desea guardar los cambios a la hora de tocar el boton "aceptar"
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_aceptar_Click(object sender, EventArgs e)
        {
            if (this.comboBox_producto.Text != null && this.textBox_modelo.Text != null && this.comboBox_talle.Text != null && this.textBox_precio.Text != null && (this.comboBox_tachas.Text != null || this.comboBox_cordon.Text != null))
            {
                MessageBoxButtons botones   = MessageBoxButtons.YesNo;
                DialogResult      respuesta = MessageBox.Show("Los cambios relizasdos se guardaran de forma permanente\n ¿Desea guardar?", "Advertencia", botones, MessageBoxIcon.Exclamation);
                if (respuesta == DialogResult.Yes)
                {
                    try
                    {
                        switch (this.comboBox_producto.SelectedItem.ToString())
                        {
                        case "Pantalon(niño)":
                        {
                            this.pñ       = new PantalonNiño(this.id + 1, this.comboBox_producto.Text, this.textBox_modelo.Text, int.Parse(this.comboBox_talle.Text), float.Parse(this.textBox_precio.Text), bool.Parse(comboBox_tachas.Text));
                            this.pantalon = new PantalonNiño(0, this.comboBox_producto.Text, this.textBox_modelo.Text, int.Parse(this.comboBox_talle.Text), float.Parse(this.textBox_precio.Text), bool.Parse(comboBox_tachas.Text));

                            break;
                        }

                        case "Pantalon(hombre)":
                        {
                            this.ph       = new PantalonHombre(this.id + 1, this.comboBox_producto.Text, this.textBox_modelo.Text, int.Parse(this.comboBox_talle.Text), float.Parse(this.textBox_precio.Text), bool.Parse(comboBox_cordon.Text));
                            this.pantalon = new PantalonHombre(0, this.comboBox_producto.Text, this.textBox_modelo.Text, int.Parse(this.comboBox_talle.Text), float.Parse(this.textBox_precio.Text), bool.Parse(comboBox_cordon.Text));

                            break;
                        }
                        }
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Solo se permiten velores numericos en el 'precio'");
                    }


                    this.DialogResult = DialogResult.OK;
                }
                else
                {
                    this.DialogResult = DialogResult.Cancel;
                }
            }
            else
            {
                MessageBox.Show("Error, tiene que llenar todos los campo.");
            }
        }
        static void Main(string[] args)
        {
            Stock          miStock = 2;
            PantalonHombre ph      = new PantalonHombre(1, "pantalon(hombre)", "modelo1", 42, 230, true);
            PantalonNiño   pñ      = new PantalonNiño(2, "pantalon(niño)", "modelo2", 16, 260, false);
            PantalonNiño   pñ1     = new PantalonNiño(3, "pantalon(niño)", "modelo3", 14, 260, true);
            Texto          texto   = new Texto();
            string         datoDeProducto;

            try
            {
                miStock += ph;
                Console.WriteLine(ph.ToString());
            }
            catch (CapacidadMaximaExcepcion ex)
            {
                Console.WriteLine(ex.InformarError());
            }
            try
            {
                miStock += pñ;
                Console.WriteLine(pñ.ToString());
            }
            catch (CapacidadMaximaExcepcion ex)
            {
                Console.WriteLine(ex.InformarError());
            }
            try
            {
                miStock += pñ1;
                Console.WriteLine(pñ1.ToString());
            }
            catch (CapacidadMaximaExcepcion ex)
            {
                Console.WriteLine(ex.InformarError());
            }
            //miStock -= 1;
            try
            {
                if (texto.Guardar(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\testeo.txt", ph.ToString()))
                {
                    Console.WriteLine("Se imprimio correctamente");
                }
            }
            catch (ArchivoExcepcion ex)
            {
                Console.WriteLine(ex.Message);
            }


            try
            {
                if (texto.Leer(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "\\testeo.txt", out datoDeProducto))
                {
                    Console.WriteLine(datoDeProducto);
                    Console.WriteLine("Se cargo correctamente");
                }
            }
            catch (ArchivoExcepcion ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.ReadKey();
        }