/// <summary>Actualiza el estado de la categoria a activo/inactivo.</summary>
        /// <param name="_EstadoElemento">Enum que contrendra el numero del tipo de estado.</param>
        private void ActualizarEstadoCategoria(ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos _EstadoElemento)
        {
            bool ActualizoUnRegistro = false;

            ClsCategoriasArticulos Categoria           = new ClsCategoriasArticulos();
            CategoriaArticulo      ActualizarCategoria = new CategoriaArticulo();

            int TotalDeFilas = dgvEstadoCategoria.Rows.Count;

            for (int Indice = 0; Indice < TotalDeFilas; Indice++)
            {
                //Pregunto si la celda es diferente a null
                if (dgvEstadoCategoria.Rows[Indice].Cells[(int)ENumColDGVCategorias.Seleccionar].Value != null)
                {
                    //Casteo el check del objeto a booleano y pregunto si es true
                    if ((bool)dgvEstadoCategoria.Rows[Indice].Cells[(int)ENumColDGVCategorias.Seleccionar].Value)
                    {
                        string InformacionDelError = string.Empty;

                        ActualizarCategoria = Categoria.LeerPorNumero((int)dgvEstadoCategoria.Rows[Indice].Cells[(int)ENumColDGVCategorias.ID_Categoria].Value, ref InformacionDelError);
                        ActualizarCategoria.ID_EstadoCategoriaArticulo = (int)_EstadoElemento;

                        if (Categoria.Actualizar(ActualizarCategoria, ref InformacionDelError) != 0)
                        {
                            dgvEstadoCategoria.Rows.Remove(dgvEstadoCategoria.Rows[Indice]);
                            Indice       -= 1;
                            TotalDeFilas -= 1;

                            ActualizoUnRegistro = true;

                            UltimaFilaSeleccionada = -1;
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
            }

            // Cargar los DGV y CMB solo si acutalizo un registro
            if (ActualizoUnRegistro)
            {
                if (_EstadoElemento == ClsEstadosCategoriasArticulos.EEstadosCategoriasArticulos.Activo)
                {
                    CargarDGVArticulos(ClsArticulos.ETipoListado.ArticulosActivosInactivos);
                }
                else
                {
                    CargarDGVArticulos(ClsArticulos.ETipoListado.ArticulosActivosInactivos);
                }

                FormularioCargado = false;
                CargarCMBCategorias();
                FormularioCargado = true;
            }
        }
        private void BtnGuardarCambios_Click(object sender, EventArgs e)
        {
            bool   DatosValidos         = true;
            string RegistroDeErrores    = string.Empty;
            int    AnchoFormInformacion = 100;

            txtNombreCategoria.Text = txtNombreCategoria.Text.Trim();

            if (txtNombreCategoria.Text.Length < 3)
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El campo 'Nombre' debe tener como minimo 3 caracteres.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (VerificarCategoriaRepetida(txtNombreCategoria.Text, ID_Categoria))
            {
                DatosValidos          = false;
                RegistroDeErrores    += "El nombre de la categoria ya esta en uso.\r\n\r\n";
                AnchoFormInformacion += 50;
            }

            if (DatosValidos)
            {
                txtNombreCategoria.Text = txtNombreCategoria.Text.Substring(0, 1).ToUpper() + txtNombreCategoria.Text.Remove(0, 1).ToLower();

                string InformacionDelError = string.Empty;

                ClsCategoriasArticulos CategoriasArticulos = new ClsCategoriasArticulos();
                CategoriaArticulo      ActualizarCategoria = CategoriasArticulos.LeerPorNumero(ID_Categoria, ref InformacionDelError);

                if (ActualizarCategoria != null)
                {
                    ActualizarCategoria.Nombre = txtNombreCategoria.Text;

                    if (rbnCocinaSi.Checked)
                    {
                        ActualizarCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.Si;
                    }
                    else
                    {
                        ActualizarCategoria.ParaCocina = (int)ClsCategoriasArticulos.EParaCocina.No;
                    }

                    ClsDetalles    Detalles = new ClsDetalles();
                    List <Detalle> SeEstaUsuandoLaCategoria = Detalles.LeerListado(-1, ClsDetalles.ETipoDeListado.CategoriaEnUso, ref InformacionDelError, ID_Categoria);

                    if (SeEstaUsuandoLaCategoria.Count == 0)
                    {
                        if (CategoriasArticulos.Actualizar(ActualizarCategoria, ref InformacionDelError) != 0)
                        {
                            DialogResult = DialogResult.OK;
                            Close();
                        }
                        else if (InformacionDelError != string.Empty)
                        {
                            MessageBox.Show($"{InformacionDelError}", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                    else
                    {
                        using (FrmInformacion FormInformacion = new FrmInformacion($"No se puede editar la categoria porque " +
                                                                                   $"se esta usando para algun pedido en este momento.", ClsColores.Blanco, 200, 300))
                        {
                            FormInformacion.ShowDialog();
                        }
                    }
                }
            }
            else
            {
                using (FrmInformacion FormInformacion = new FrmInformacion(RegistroDeErrores, ClsColores.Blanco, AnchoFormInformacion, 300))
                {
                    FormInformacion.ShowDialog();
                }
            }
        }