Lose detail in DGV that was entered via cellFormatting

Hi Experts

I am adding the contents of textbox to a cell in a DGV via  the cell formatting event.

The thing is when I try and obtain the value of that cell I get nothing.

http://www.screencast.com/users/si2030/folders/Jing/media/fe469369-a496-4729-8968-3989d55cd0a6


I have no idea why and have been working on this for a while now.

I have included the subroutine that the cell formatting event controller calls.

In particular this is the code that I am querying:

 If Me.dgvCreditorInvoiceDetail.Columns(e.ColumnIndex).Name = "ref" Then

                    If Presenter.validateAssetNo(e.Value) = True Then

                    Else

                        e.Value = txtInvoiceNumber.Text

                    End If

Now this works but when I use:

dgvCreditorInvoiceDetail.Rows(0).Cells("ref").Value
dgvCreditorInvoiceDetail.Item("ref", 0).Value

in both cases these return "nothing".

The cell clearly has an entry but the DGV thinks the cell has nothing in it.

Hope someone can tell me why the cell shows an entry but does not recognise that a value was in there.

Kind Regards

Simon
Private Sub formatDGVCells(ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Implements creditorInvoiceINTERFACE.IfrmCreditorInvoice.formatDGVCells
 
        Try
 
            If e.ColumnIndex > -1 Then
 
                If Me.dgvCreditorInvoiceDetail.Columns(e.ColumnIndex).Name = "amount" Then
 
                    If e.Value = "" Or IsNothing(e.Value) Then
 
                        e.Value = "$0.00"
                        e.CellStyle.ForeColor = Color.Black
 
                    Else
 
                        If (e.Value = 0) Then
 
                            e.Value = "$0.00"
                            e.CellStyle.ForeColor = Color.Black
 
                        Else
 
                            e.Value = "$" & FormatNumber((e.Value), 2, TriState.UseDefault, TriState.UseDefault, TriState.UseDefault)
 
                            If e.Value > 0 Then
 
                                e.CellStyle.ForeColor = Color.Black
 
                            Else
 
                                e.CellStyle.ForeColor = Color.Red
 
                            End If
 
                            Dim total As Decimal = 0
 
                            For count = 0 To dgvCreditorInvoiceDetail.Rows.Count - 1
 
                                total = total + CType(Mid(dgvCreditorInvoiceDetail.Rows(count).Cells("amount").Value, 1), Decimal)
 
                            Next
 
                            txtTotal.Text = String.Format("{0:C}", total)
 
                            If total < 0 Then
 
                                txtTotal.ForeColor = Color.Red
 
                            End If
 
                        End If
 
                    End If
 
                End If
 
                If Me.dgvCreditorInvoiceDetail.Columns(e.ColumnIndex).Name = "ref" Then
 
                    If Presenter.validateAssetNo(e.Value) = True Then
 
                    Else
 
                        e.Value = txtInvoiceNumber.Text
 
                    End If
 
                End If
 
                If Me.dgvCreditorInvoiceDetail.Columns(e.ColumnIndex).Name = "detail" Then
 
                    If e.Value <> "" Or (e.Value <> Nothing) Then
 
                        e.Value = e.Value.ToString.ToUpper
 
                    End If
 
                End If
 
                If Me.dgvCreditorInvoiceDetail.Columns(e.ColumnIndex).Name = "account" Then
 
                    newColumn.FlatStyle = FlatStyle.Flat
 
                End If
 
            End If
 
        Catch ex As Exception
 
            manageWindowsViewError("creditorTASK", "frmCreditorInvoicePayment", "formatDGVCells", ex)
 
        End Try
 
    End Sub

Open in new window

si2030Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Bob LearnedCommented:
Does Cell.FormattedValue have any value?
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
si2030Author Commented:
That simple! I didnt know that there was a "value" and... if you formatted the cell the formatted value. In this case there was no initial value so when I pulled the cells contents there was nothing!

Thanks.. great answer..
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Visual Basic.NET

From novice to tech pro — start learning today.