Solved

Lose detail in DGV that was entered via cellFormatting

Posted on 2009-06-29
2
277 Views
Last Modified: 2012-05-07
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

0
Comment
Question by:si2030
2 Comments
 
LVL 96

Accepted Solution

by:
Bob Learned earned 500 total points
ID: 24741492
Does Cell.FormattedValue have any value?
0
 

Author Closing Comment

by:si2030
ID: 31597881
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

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Creating an analog clock UserControl seems fairly straight forward.  It is, after all, essentially just a circle with several lines in it!  Two common approaches for rendering an analog clock typically involve either manually calculating points with…
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that unde…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
Concerto provides fully managed cloud services and the expertise to provide an easy and reliable route to the cloud. Our best-in-class solutions help you address the toughest IT challenges, find new efficiencies and deliver the best application expe…

932 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now