Interface gráfica com Visual C++ – DataGridView – Parte I

6 07 2011

Um dos mais versáteis classes do namespace System é a classe System∷Windows∷Forms∷DataGridView.  Essa classe permite a criação e manipulação de tabelas de forma dinâmica, permitindo inserção de dados de diversos tipos, caixas de seleção do tipo CheckBox e ComboBox, formatação condicional de células e organização dos dados em ordem lexicográfica e/ou numérica.

Pela gama de operações que podem ser realizadas em um objeto da classe DataGridView, iremos dividir a exibição de suas características em várias postagens. No final,  o exposto será suficiente para a maioria das aplicações.

Primeiramente, vamos criar uma tabela em nossa interface, usando o DataGridView. Vá no quadro ToolBox e clique no ícone onde está escrito DataGridView. Desenhe a tabela em sua interface. Nesse momento aparecerá um quadro ao lado de sua tabela semelhante a esse:

O campo Choose Data Source permite que seja escolhido uma fonte de dados externa, vindo de um banco de dados relacional. Não iremos nos ater a essa possibilidade, inserindo e removendo os nossos dados manualmente através de funções que criaremos.

Abaixo dessa caixa, temos dois links, Edit Columns e Add Column. Como seus nomes sugerem, servem para editar e adicionar colunas na tabela respectivamente. Primeiramente iremos incluir três colunas, e depois efetuaremos as alterações nesta.

Clique no link Add Column. Observe o quadro que surge.

A primeira opção diz se os dados daquela coluna serão provenientes de algum banco de dados. Ao marcar a opção Unbound Column, dizemos que os dados serão fornecidos pelo software ou pelo usuário de alguma forma, sem o intermédio de um banco de dados.

A caixa de texto abaixo salva o nome da coluna. Para efeito de código, esse nome tem pouca importância, pois iremos referenciá-las através de seus índices na tabela, como se tivéssemos lidando com uma matriz bidimensional.

Na opção seguinte, temos o tipo de dados que conterá aquela coluna. Ao contrário do que acontece com bancos de dados comuns, esse tipo não se refere a tipos básicos como inteiros, caracteres, cadeias de caracteres etc… e sim o tipo de objeto que aquela coluna vai salva, como ComboBox,CheckBox,Text entre outros.

 Na opção Header Text que nada mais é do que o título que aquela coluna vai apresentar. Como em qualquer outra tabela, esse título irá orientar o observador sobre o conteúdo dos dados naquela coluna.

As últimas opções, Visible,Read Only e Frozen se referem ao grau de acesso aos dados. O primeiro diz que os dados devem estar visíveis para o usuário, o segundo se o usuário poderá modificar esses dados diretamente na tabela. Já o parâmetro Frozen se refere ao redimensionamento horizontal da coluna, se ele estiver marcado, as colunas ficam congeladas para alteração de tamanho.

Depois de inseridas três colunas com o tipo DataGridViewTextBoxColumn , para guardar dados em modo texto, temos a nossa tabela igual a mostrada abaixo:


Ações

Information

4 responses

24 08 2011
Douglas

Olá amigo! Muito obrigado pelos posts! Googleando achei seu site e comecei a seguir os posts sobre a interface gráfica com o C++, mas estou sofrendo para tentar fazer a ligação da DataGridView com um Servidor SQL, coisa que com alguns poucos cliques é possível com VB ou C#. Pelo que entendi o C++ só consegue ter objetos como fonte de dados, enquanto VB e C# conseguem ter o BD como fonte de dados. Poderia me informar algum meio ou algum site com alguma explicação ou exemplo para tornar a DataGrid em um intermediário entre usuário e BD? Muito Obrigado!

26 08 2011
nilsonfelipe

Douglas, é possível sim ligar o banco de dados com o DataGridView, mas isso usando-se um pouco de código (poucas linhas porém) . Não sei te se é possível e como fazer isso sem codificar, mas penso que sim. Vou pesquisar um pouco e se achar uma resposta posto aqui no blog.

26 08 2011
Douglas

Obrigado pela resposta. Realmente vi em alguns lugares a necessidade de código, algo envolvendo ODBC e OLE DB. Ainda estou pesquisando e tentando de várias formas conectar no DB, mas acredito que numa das minhas tentativas ferrei com o Sql server, estou reinstalando ele em uma VM para continuar tentando. Até consegui conectar um vez, mas usando C#. A diferença ao adicionar a fonte de dados é brusca, e pelo que entendi o C++ precisa de um objeto que gerencie a conexão com o DB, enquanto o C# gerencia a conexão diretamente com o DB. Muito obrigado pela atenção e se eu conseguir também lhe falo por aqui.

28 08 2011
Interface gráfica com Visual C++ – DataGridView – Parte II « Password

[…] a primeira postagem sobre DataGridViewVamos analisar agora o código gerado agora pelo programa. Primeiramente na parte de declaração […]

Deixe um comentário