VB.Net: DataGridView Default Error Dialog

Hi,

I am using vb.net.

I have a datagridview with four columns.

The last two columns which are named Debit and Credit. Under the designer, I set the format to currency with two decimal places.

Grid View Pic
Now when I enter any whole or double values and after I leave the cell, immediately the number gets a currency symbol next to it.(Which is what I wanted and is working properly)

But when I delete the number and try to move to another cell, I get the "DatagridView Default Error Dialog" and within that error message dialog and at the end of the dialog box I get the following statement saying that to use the "DataError Event" to handle the problem.

Dialog Error Message Box
After I use that event , I was able to avoid the error. and within that event I tried to replace the cell value to 0 or 0.0 if the user deleted the value and leave the cell.

But by doing that it did not work. I didn't get any errors, but the value 0.0 was not printed on the cell. I have given a detailed information about that event below:

First I got the current cell's column and row index to get the value from the cell. the value that showed was the value that was deleted from the cell.

So after that I wanted to replace that null or white space or empty cell with a value of 0.0 at the data error event.

But the value was not printed in the cell, and after that I checked the value on a messagebox, and it showed that the value was 0. but even then the cell was empty. Also when I tried to move to another cell,  the data error event was getting fired again and again.

Could you please help me to solve this problem.

Thanks in advance.
baabaa_nlAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
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.

nepaluzCommented:
Rather than try to set the value of the cell in the DataError event of the datagridview, set a default value for cells in that column, that way, all new rows will have a value of 0.0 in that column.
0
baabaa_nlAuthor Commented:
Could you please give me the code and if possible the designer method to do that?

Also if i empty a cells value, how can i set that cell a value of 0 if the cell is left blank.

Thanks in advance
0
nepaluzCommented:
In the designer, set the NullValue via the DefaultCellStyle, aka
desgnOr you can set in code
Me.DataGridView1.Columns(0).DefaultCellStyle = New DataGridViewCellStyle With {.NullValue = 0.0}

Open in new window

Assuming you are setting for the first column
0
CodeCruiserCommented:
Use e.ColumnIndex and e.RowIndex to access the cell.

At the end of event handle for DataError event, set e.cancel = true.

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewdataerroreventargs.aspx

http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.dataerror.aspx
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
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.