Jump to content
diego_10

VB.NET + DatagridViewCell

Recommended Posts

diego_10

Boas,

Tenho a minha datagridview onde coloco numa determinada celula numero inteiros, eu gostava de fazer o seguinte, numa determinada celula tenho o valor 15 e depois, mas vou ter de somar a esses 15 mais 52 quando a mesma celula perder o foco ficava a soma dos 2 valores ( 15 + 52 = 67 ), como e o caso numa folha excel, numa celula coloca-se 6+6 e ele fica na celula 12.

Cumps a todos!

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Ve se isto faz o que pretendes

Ao saíres da célula, verifica se o valor é 15. Se for adiciona + 52

Private Sub DataGridView1_CellValidated(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellValidated
If DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value = 15 Then
    DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).Value += Val(52)
End If
End Sub


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
diego_10

Não,

Esses valores sao exemplos, eu preciso com valores aleatorios introduzidos pelos utilizadores.

o que tenho é isto:

Dim [ValorCelula] As Double = 0

  Private Sub DataGridView1_CellBeginEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellCancelEventArgs) Handles DataGridView1.CellBeginEdit
    If IsNumeric(DataGridView1.CurrentCell.Value) Then
      [ValorCelula] = CDbl(DataGridView1.CurrentCell.Value)
    End If
  End Sub

  Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
    If DataGridView1.CurrentCell.Value.ToString().StartsWith("+") Or DataGridView1.CurrentCell.Value.ToString().StartsWith("-") Or
      DataGridView1.CurrentCell.Value.ToString().StartsWith("*") Or DataGridView1.CurrentCell.Value.ToString().StartsWith("/") Then
      If Mid(DataGridView1.CurrentCell.Value, 1, 1) = "+" Then
        DataGridView1.CurrentCell.Value = [ValorCelula] + CDbl(Mid(DataGridView1.CurrentCell.Value, 2))
      End If
      If Mid(DataGridView1.CurrentCell.Value, 1, 1) = "-" Then
        DataGridView1.CurrentCell.Value = [ValorCelula] - CDbl(Mid(DataGridView1.CurrentCell.Value, 2))
      End If
      If Mid(DataGridView1.CurrentCell.Value, 1, 1) = "*" Then
        DataGridView1.CurrentCell.Value = [ValorCelula] * CDbl(Mid(DataGridView1.CurrentCell.Value, 2))
      End If
      If Mid(DataGridView1.CurrentCell.Value, 1, 1) = "/" Then
        DataGridView1.CurrentCell.Value = [ValorCelula] / CDbl(Mid(DataGridView1.CurrentCell.Value, 2))
      End If
    End If
  End Sub

Mas quando ele vai para o EndEdit não encontra o +, ou o - ou o * ou o /

Cumps

Share this post


Link to post
Share on other sites
Andrepereira9

Então o que pretendes é o utilizador preenche a celula com 15. Depois volta a editar a celula e escreve + 52, e quando sai, ela fica com 67?


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
progster

Não será algo deste género devidamente adaptado ao DataGridView?

Private Sub cmdCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCalcular.Click

soma = 0
        For contador = 1 To 10
            soma = soma + contador
            txtResultado.Text = soma
        Next (contador)
End Sub


Não resolvo dúvidas por PM.

Share this post


Link to post
Share on other sites
diego_10

pois,

mas isso e o que tenho ali, mas quando ele lê a célula novamente não consegue ler se tem o mais ou não, só me vê o numero, mesmo eu colocando como string ele na lê, logo não entra no ciclo.

Cumps

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.