Pergunta

Estou tentando desenhar colunas personalizadas em um controle fastObjectListView.

Até agora, o código funciona, mas o espaço livre do ColumnHeaders (então a peça que não contém nenhum cabeçalho de coluna ATM) ainda se baseia como padrão.

    private void olvMain_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
    {
        e.Graphics.FillRectangle(Brushes.Black,
            e.Bounds.X, e.Bounds.Y,
            e.Bounds.Width, e.Bounds.Height);

        e.Graphics.DrawRectangle(Pens.Lime,
            e.Bounds.X - 1, e.Bounds.Y - 1,
            e.Bounds.Width - 1, e.Bounds.Height - 1);

        e.DrawText();

        e.DrawDefault = false;
    }

Eu adicionei:

e.DrawDefault = false;

Porque, sem isso, o estilo padrão do ColumnHeaders foi desenhado em cima do meu estilo personalizado, mas como o espaço livre do ColumnHeaderBar não contém nenhum columnHeaders, ele ainda é desenhado pelo estilo padrão.

Aqui está uma foto para esclarecer o que quero dizer com o espaço livre do ColumnHeader:Link da imagem

Desde já, obrigado.

Foi útil?

Solução

A área que não é pintada de preto está fora da área dos clientes dos cabeçalhos - portanto, não é pintável pelo controle.

Não há maneira fácil de mudar a cor dessa área. Dê uma olhada em esta pergunta e sua resposta para ver algumas soluções possíveis.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top