2
respostas

Alternativas ao DataGridView

O DataGridView é uma excelente opção para exibir resultados de consultas SQL armazenados em um DataTable.

Existe outro componente gráfico já implementado que faça isso também?

Por exemplo, eu estou criando uma consulta de acompanhamento de fechamento em bases distribuídas, e gostaria de mostrar uma barra de progresso indicando visualmente o percentual de completude do fechamento em cada unidade.

Hoje, uso uma coluna do DataGridView para mostrar um percentual, em formato numérico. Ficaria muito bonito substituir essa coluna por uma barra de prgoresso.

2 respostas

Olá! Como vai?

Embora o DataGridView seja um componente bastante versátil, entendo que você esteja buscando uma forma mais visual de representar o progresso.

Uma alternativa para isso seria utilizar o componente ProgressBar. No entanto, ele não pode ser adicionado diretamente ao DataGridView. Uma solução seria criar uma coluna de DataGridView personalizada que contenha uma ProgressBar.

Aqui está um exemplo de como você pode fazer isso:

public class ProgressCell : DataGridViewTextBoxCell
{
    public override void InitializeEditingControl(int rowIndex, object
        initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle)
    {
        base.InitializeEditingControl(rowIndex, initialFormattedValue, 
            dataGridViewCellStyle);
        ProgressBarEditingControl ctl = 
            DataGridView.EditingControl as ProgressBarEditingControl;
        if (this.Value == null)
        {
            ctl.Value = (int)this.DefaultNewRowValue;
        }
        else
        {
            ctl.Value = (int)this.Value;
        }
    }

    public override Type EditType
    {
        get
        {
            return typeof(ProgressBarEditingControl);
        }
    }

    public override Type ValueType
    {
        get
        {
            return typeof(int);
        }
    }

    public override object DefaultNewRowValue
    {
        get
        {
            return 0;
        }
    }
}

Este código cria uma nova classe de célula que contém uma ProgressBar. Você pode então adicionar esta célula a uma coluna em seu DataGridView. Note que este é apenas um exemplo e pode precisar ser ajustado para se adequar às suas necessidades específicas.

Espero que isso possa te ajudar a criar uma representação visual mais intuitiva do progresso em suas aplicações.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Valeu Armano. Vou experimentar e dou retorno em breve.