Solved

Lose detail in DGV that was entered via cellFormatting

Posted on 2009-06-29
2
276 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

How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

Join & Write a Comment

Well, all of us have seen the multiple EXCEL.EXE's in task manager that won't die even if you call the .close, .dispose methods. Try this method to kill any excels in memory. You can copy the kill function to create a check function and replace the …
1.0 - Introduction Converting Visual Basic 6.0 (VB6) to Visual Basic 2008+ (VB.NET). If ever there was a subject full of murkiness and bad decisions, it is this one!   The first problem seems to be that people considering this task of converting…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

708 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

17 Experts available now in Live!

Get 1:1 Help Now