Usuário com melhor resposta
Criar um DataGridView pré preenchido

Pergunta
-
Olá estou tendo problemas para criar um datagrid com a seguinte descrição:
São duas colunas a primeira teria 12 linhas (Cada linha seria um mês e essa coluna não seria editável) a segunda coluna seria para o usuário inserir números.
Consegui fazer um grid que a coluna um torna-se não editável, a segunda funcionou como eu queria, o problema em si é gostaria de saber como fazer para aparecer as 12 linhas automaticamente já preenchidas com cada mês, na coluna um.
Eu tentei o seguinte código:
Private Sub DataGridView1_CellContentClick(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick DataGridView1.Columns(1).ReadOnly = False DataGridView1.Rows(1).Cells(1).Value = "Janeiro" DataGridView1.Rows(2).Cells(1).Value = "Fevereiro" DataGridView1.Columns(1).ReadOnly = True End Sub
Sem alguém puder me ajudar eu serei grato.
Respostas
-
Bom dia,
você pode fazer da seguinte forma:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim decTotal As Decimal = 0 Dim strValorCelula As String Dim decValor As Decimal For Each linha As DataGridViewRow In DataGridView1.Rows strValorCelula = linha.Cells(1).Value If (Not String.IsNullOrEmpty(strValorCelula)) Then Decimal.TryParse(strValorCelula, decValor) decTotal += Convert.ToDecimal(decValor) End If Next MsgBox(decTotal, MsgBoxStyle.OkOnly, "Valor Total dos Meses") End Sub
Att,
Lucio Rogerio
Espero ter ajudado, se ajudei, por favor "Vote como Útil", e se resolvi seu problema, clique em "Propor como Resposta".- Marcado como Resposta Cristopher C I_ segunda-feira, 8 de junho de 2015 12:53
sexta-feira, 5 de junho de 2015 14:04 -
Boa tarde,
fiz um exemplo para você.
Crie uma Classe Chamada Meses, com o seguinte código:
Public Class Meses Private newMes As String Public Property Mes() As String Get Return newMes End Get Set(ByVal value As String) newMes = value End Set End Property Private newOutroValor As String Public Property OutroValor() As String Get Return newOutroValor End Get Set(ByVal value As String) newOutroValor = value End Set End Property Public Sub New(ByVal pMes As String, ByVal pOutroValor As String) newMes = pMes newOutroValor = pOutroValor End Sub End Class
Em seguida altere altere o evento Form1_Load da seguinte forma:
Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim listaMeses As New List(Of Meses) Dim objBindingSource As New BindingSource() objBindingSource.Add(New Meses("Janeiro", "1")) objBindingSource.Add(New Meses("Fevereiro", "1")) objBindingSource.Add(New Meses("Março", "1")) objBindingSource.Add(New Meses("Abril", "1")) objBindingSource.Add(New Meses("Maio", "1")) objBindingSource.Add(New Meses("Junho", "1")) objBindingSource.Add(New Meses("Julho", "1")) objBindingSource.Add(New Meses("Agosto", "1")) objBindingSource.Add(New Meses("Setembro", "1")) objBindingSource.Add(New Meses("Outubro", "1")) objBindingSource.Add(New Meses("Novembro", "1")) objBindingSource.Add(New Meses("Dezembro", "1")) Dim coluna1 As DataGridViewColumn = New DataGridViewTextBoxColumn() coluna1.DataPropertyName = "Mes" coluna1.Name = "Mês" coluna1.ReadOnly = True Dim coluna2 As DataGridViewColumn = New DataGridViewTextBoxColumn() coluna2.DataPropertyName = "OutroValor" coluna2.Name = "Outro Valor" coluna2.ReadOnly = False DataGridView1.Columns.Add(coluna1) DataGridView1.Columns.Add(coluna2) DataGridView1.AutoGenerateColumns = False DataGridView1.DataSource = objBindingSource End Sub End Class
Recomendo que você remoca o código inserido no DataGridView1_CellContentClick.
Att,
Lucio Rogerio
Espero ter ajudado, se ajudei, por favor "Vote como Útil", e se resolvi seu problema, clique em "Propor como Resposta".- Marcado como Resposta A_Nunes sexta-feira, 5 de junho de 2015 10:30
quinta-feira, 4 de junho de 2015 16:03
Todas as Respostas
-
-
Incomodando mais um pouco como eu poderia fazer para o pegar os dados das 12 linhas da coluna dois e fazer a soma?
Tentei fazer como da forma abaixo mais só dá erro
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim Somma As Double Dim SS1, SS2 As Integer SS1 = DataGridView1.Rows(1).Cells(2).Value SS2 = DataGridView1.Rows(2).Cells(2).Value ... SS12 = DataGridView1.Rows(12).Cells(2).Value Somma = SS1 + SS2 + ... + SS12 TextBox9.Text = Somma End Sub
Esse button faz outros cálculos também, mas eles usam apenas dados fornecidos por textbox's.
Meu objetivo agora seria somar os dados da coluna 2 do meu DataGridView e por o resultado na TextBox9 (o qual será utilizado posteriormente).