Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2868
  • Last Modified:

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.
0
baabaa_nl
Asked:
baabaa_nl
  • 2
2 Solutions
 
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

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now