/// <summary>
        /// Método utilizado pelo designer para definir se um
        /// controle do tipo DigitaçãoComum deve ser verificado por
        /// este controle.
        /// </summary>
        public void SetVerificarMercadoria(DigitaçãoComum controle, bool valor)
        {
            bool contém = controles.Contains(controle);

            if (!valor && contém)
            {
                controles.Remove(controle);
                controle.AoAdicionar -= aoAdicionar;
                DesmarcarMercadorias(controle);
            }
            else if (valor && !contém)
            {
                controles.Add(controle);
                controle.AoAdicionar += aoAdicionar;

                if (ligado)
                    MarcarMercadorias(controle);
            }
        }
        /// <summary>
        /// Desmarca todas as mercadorias de um controle de digitação.
        /// </summary>
        /// <param name="controle">
        /// Controle digitação cuja bandeja será totalmente desmarcada.
        /// </param>
        private void DesmarcarMercadorias(DigitaçãoComum controle)
        {
            if (controle.Bandeja.ListView.InvokeRequired)
            {
                DesmarcarMercadoriasCallback método = new DesmarcarMercadoriasCallback(DesmarcarMercadorias);
                controle.Bandeja.ListView.BeginInvoke(método, controle);
            }
            else
            {
                Color foreColor = controle.Bandeja.ListView.ForeColor;
                Color backColor = controle.Bandeja.ListView.BackColor;

                foreach (ListViewItem item in controle.Bandeja.ListView.Items)
                {
                    item.ForeColor = foreColor;
                    item.BackColor = backColor;
                    //item.SubItems["peso"].ForeColor = foreColor;
                    //item.SubItems["peso"].BackColor = backColor;
                }
            }
        }
 public bool GetVerificarMercadoria(DigitaçãoComum controle)
 {
     return controles.Contains(controle);
 }
 /// <summary>
 /// Marca todas as mercadorias inválidas de um controle.
 /// </summary>
 /// <param name="controle">Controle cuja bandeja será validada.</param>
 private void MarcarMercadorias(DigitaçãoComum controle)
 {
     if (mercadorias != null)
         foreach (Entidades.ISaquinho saquinho in controle.Bandeja)
             if (!Verificar(saquinho.Mercadoria))
                 MarcarMercadoria(controle, saquinho.Mercadoria);
 }
        /// <summary>
        /// Marca uma mercadoria de um controle como inválida.
        /// </summary>
        private void MarcarMercadoria(DigitaçãoComum controle, Entidades.Mercadoria.Mercadoria mercadoria)
        {
            ListViewItem item = controle.Bandeja.ObterLinha(mercadoria);

            if (item.ListView.InvokeRequired)
            {
                MarcarMercadoriaCallback método = new MarcarMercadoriaCallback(MarcarMercadoria);
                item.ListView.BeginInvoke(método, controle, mercadoria);
            }
            else
            {
                item.BackColor = Color.Red;
                item.ForeColor = Color.White;
            }
        }
        /// <summary>
        /// Ocorre ao adicionar a mercadoria.
        /// </summary>
        /// <param name="mercadoria">Mercadoria adicionada.</param>
        /// <param name="quantidade">Quantidade de mercadoria.</param>
        private void AoAdicionarMercadoria(DigitaçãoComum controle, Entidades.Mercadoria.Mercadoria mercadoria, double quantidade)
        {
            if (ligado && !Verificar(mercadoria))
            {
                MarcarMercadoria(controle, mercadoria);

                Beepador.Alerta();
                
                //using (BalãoMercadoriaInconsistente dlg = new BalãoMercadoriaInconsistente(mercadoria))
                //{
                //    Apresentação.Útil.Beepador.Aviso();
                //    dlg.ShowDialog(controle);
                //}
            }
        }
 /// <summary>
 /// Método utilizado pelo designer para definir se um
 /// controle do tipo DigitaçãoComum deve ser definido por este controle.
 /// </summary>
 public void SetDefinirTabela(DigitaçãoComum controle, bool valor)
 {
     if (valor)
         digitações.Add(controle);
     else
         digitações.Remove(controle);
 }
 public bool GetDefinirTabela(DigitaçãoComum controle)
 {
     return digitações.Contains(controle);
 }