Jump to content

Recommended Posts

Posted

Boas, tou aqui com um problema que é o seguinte quero passar dados ao clicar num botao, que estao em numericupdown para uma datagrid, ate agora tudo bem, o problema e ao clicar no botao novamente em vez que enviar o dado para a linha abaixo, cria a linha mas a mesma fica em branco, nao tou a ver como resolver.

codigo:

        ' CARREGAR OS DADOS
        Dim idx_linha As Integer
        idx_linha = 0


           Dim linha As New DataGridViewRow()
        DataGridView1.Rows.Add(linha)
        DataGridView1.Rows(idx_linha).Cells(0).Value = NUDPecaCompr.Value
        DataGridView1.Rows(idx_linha).Cells(1).Value = NUDQT.Value

        idx_linha = idx_linha + 1

LM

Posted

nao esta, se eu fizer isso atraves de um select a base dados consigo colocar bem o while, agora aqui esta sempre a dar barraca, nunca dá, devo estar a fazer mal. no codigo que coloquei nao esta dentro de um ciclo while

LM

Posted

nao esta, se eu fizer isso atraves de um select a base dados consigo colocar bem o while, agora aqui esta sempre a dar barraca, nunca dá, devo estar a fazer mal. no codigo que coloquei nao esta dentro de um ciclo while

experimenta la assim

        ' CARREGAR OS DADOS

        Dim idx_linha As Integer

        idx_linha = idx_linha - 1

          Dim linha As New DataGridViewRow()

        DataGridView1.Rows.Add(linha)

        DataGridView1.Rows(idx_linha).Cells(0).Value = NUDPecaCompr.Value

        DataGridView1.Rows(idx_linha).Cells(1).Value = NUDQT.Value

        idx_linha = idx_linha + 1

Posted

dá logo este erro : Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

aqui :  DataGridView1.Rows(idx_linha).Cells(0).Value = NUDPecaCompr.Value

LM

Posted

dá logo este erro : Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index

aqui :  DataGridView1.Rows(idx_linha).Cells(0).Value = NUDPecaCompr.Value

Eu penso que o erro esta no idx_linha se assim nao da experimenta igualar a 1 ver o que dá, porque nao estou a ver mais nada, ja fiz aqui tambem uma pesquisa mas nao encontrei nada

Posted

sim ja tentei, e o que faz é, clico no botao passa o registo, clico botao novamente e passa o registo, tudo bem ate agora, depois cada vez que clico novamente em vez de passar registos começa a fazer linhas em branco entre estes 2 campos que passaram.

LM

Posted

sim ja tentei, e o que faz é, clico no botao passa o registo, clico botao novamente e passa o registo, tudo bem ate agora, depois cada vez que clico novamente em vez de passar registos começa a fazer linhas em branco entre estes 2 campos que passaram.

Uhm entao nao me parece que o problema seja na formaçao, mas sim na passagem dos dados

Posted
Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        NUDCompr.Maximum = 99999
        NUDPecaCompr.Maximum = 99999
        NUDQT.Maximum = 99999
        NUDCompr.Minimum = 1
        NUDPecaCompr.Minimum = 1
        NUDQT.Minimum = 1
     


        NUDCompr.Value = 6500
        NUDPecaCompr.Value = 1000
        NUDQT.Value = 2
        Calcular()
    End Sub
    Private Sub Calcular()
        Dim ComprimentoBase As Integer = NUDCompr.Value
        Dim ComprimentoPecas As Integer = NUDPecaCompr.Value
        Dim Divisoes As Double = CInt(NUDQT.Value)

        If ComprimentoPecas * Divisoes > ComprimentoBase Then
            MsgBox("O pedido excede o tamanho base da peça.", MsgBoxStyle.Critical, "Erro!")
            Exit Sub
        End If

        Dim ComprimentoPorporcional As Integer = CInt((NUDPecaCompr.Value * PB.Width) / NUDCompr.Value)

        Dim g As Graphics = PB.CreateGraphics
        g.Clear(Color.White)

        Dim ActPeca As Integer = 1

        For i As Integer = 0 To PB.Width Step ComprimentoPorporcional
            If ActPeca - 1 <= Divisoes Then
                g.DrawLine(Pens.Black, i, 0, i, PB.Height)
            End If

            If ActPeca <= Divisoes Then
                g.DrawString(ComprimentoPecas, New Font("Arial", 14, FontStyle.Regular, GraphicsUnit.Pixel), Brushes.Black, i, 0)



            End If

            ActPeca += 1
        Next

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Calcular()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        ' CARREGAR OS DADOS
        Dim idx_linha As Integer
        idx_linha = 0


        Dim linha As New DataGridViewRow()
        DataGridView1.Rows.Add(linha)

        DataGridView1.Rows(idx_linha).Cells(0).Value = NUDPecaCompr.Value
        DataGridView1.Rows(idx_linha).Cells(1).Value = NUDQT.Value

        idx_linha = idx_linha + 1
    End Sub
End Class

LM

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.