MSFlexGrid - Incluindo Colunas em uma determinada posição.


Mais uma vez estamos falando sobre o controle MSFlexGrid . Agora vamos mostrar como incluir uma coluna na grade. O padrão do VB é incluir a coluna no fim da grade a partir da última coluna . Vou mostrar como você pode incluir uma coluna em outra posição.

1- Inicie um novo projeto no VB e no formulário padrão insira os controles conforme o layout a seguir:

2- Insira o código abaixo no evento Click do botão de comando -Incluir Coluna :
Private Sub Command1_Click()
Dim titulo As String

With MSFlexGrid1
  .Cols = .Cols + 1
  If optdepois.Value = True Then
    posicao = posicao + 1
    titulo = " Depois "
   .ColPosition(.Cols - 1) = posicao
  ElseIf optantes.Value = True Then
    titulo = " Antes "
    .ColPosition(.Cols - 1) = posicao
  End If
  .Row = 0
  .Col = posicao
  .Text = titulo
End With

End Sub
A variação - posição - retém o valor da coluna que o usuário clicou:
Private Sub MSFlexGrid1_Click()
posicao = MSFlexGrid1.Col
End Sub

Se a opção para incluir a coluna Depois da seleção estiver ativa

basta acrescentar um a variável posição : posicao = posicao + 1

O titulo da coluna é exibido conforme a opção selecionada

A posição da coluna é obtida pela propriedade: ColPosition

3- O codigo do evento Load do formulário define os cabeçalhos das colunas:
Private Sub Form_Load()
  definecabecalho
End Sub
4- Agora o código da função - defineCabecalho : Ela apenas acrescente nomes ao cabeçalho do grid.
Private Sub definecabecalho()
 Dim x As Integer
 With MSFlexGrid1
     For x = 0 To .Cols - 1
         .Col = x
         .Row = 0
         .Text = "Coluna " & x
     Next
 End With
End Sub
Ao processar poderemos ter o seguinte resultado: Selecionando a Coluna 2 e incluindo uma coluna antes e outra depois da seleção.
Simples não é mesmo !   Até a próxima...