Luis Marques Posted June 4, 2009 at 04:06 PM Report #269920 Posted June 4, 2009 at 04:06 PM 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
passado Posted June 4, 2009 at 07:56 PM Report #269973 Posted June 4, 2009 at 07:56 PM Nao percebi bem, mas isso esta dentro de um while ?
Luis Marques Posted June 4, 2009 at 08:08 PM Author Report #269980 Posted June 4, 2009 at 08:08 PM 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
passado Posted June 4, 2009 at 08:20 PM Report #269987 Posted June 4, 2009 at 08:20 PM 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
Luis Marques Posted June 4, 2009 at 08:24 PM Author Report #269991 Posted June 4, 2009 at 08:24 PM 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
passado Posted June 4, 2009 at 08:28 PM Report #269995 Posted June 4, 2009 at 08:28 PM 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
Luis Marques Posted June 4, 2009 at 08:36 PM Author Report #269999 Posted June 4, 2009 at 08:36 PM 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
passado Posted June 4, 2009 at 08:40 PM Report #270000 Posted June 4, 2009 at 08:40 PM 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
Luis Marques Posted June 4, 2009 at 08:42 PM Author Report #270001 Posted June 4, 2009 at 08:42 PM eu ja tive este problema a uns tempos, e o while resolveu, mas era a usar um select a base de dados, agora assim, nao sei como fazer LM
passado Posted June 4, 2009 at 08:48 PM Report #270005 Posted June 4, 2009 at 08:48 PM Nesta linha DataGridView1.Rows.Add(linha) linha e o que?
Luis Marques Posted June 4, 2009 at 08:55 PM Author Report #270008 Posted June 4, 2009 at 08:55 PM esta a acrescentar mais 1 linha sempree LM
passado Posted June 4, 2009 at 09:02 PM Report #270012 Posted June 4, 2009 at 09:02 PM esta a acrescentar mais 1 linha sempree Passa la todo o codigo
Luis Marques Posted June 4, 2009 at 09:04 PM Author Report #270013 Posted June 4, 2009 at 09:04 PM 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
passado Posted June 4, 2009 at 09:11 PM Report #270017 Posted June 4, 2009 at 09:11 PM Linha esta declarado onde? experimenta assim DataGridView1.Rows.Add(linha - 1) ou +1
Luis Marques Posted June 4, 2009 at 09:12 PM Author Report #270018 Posted June 4, 2009 at 09:12 PM Esta aqui Dim linha As New DataGridViewRow() e como disseste nao dá LM
Luis Marques Posted June 5, 2009 at 07:57 AM Author Report #270063 Posted June 5, 2009 at 07:57 AM Ninguem me sabe ajudar, com uma solunçaozita para o meu problema: :bored: LM
ribeiro55 Posted June 5, 2009 at 08:44 AM Report #270077 Posted June 5, 2009 at 08:44 AM Não deves usar datagrids para esse fim... Porque não uma ListView? Sérgio Ribeiro "Great coders aren't born. They're compiled and released""Expert coders do not need a keyboard. They just throw magnets at the RAM chips"
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now