Solved

Set DataGridViewCheckBoxColumn default Value

Posted on 2014-02-14
5
2,592 Views
Last Modified: 2014-02-19
Hi expert,

I try to use DataGridView in a winform app. I added DataGridViewCheckBoxColumn.
I'd like to set all checkbox default value as false.

I use the DefaultValuesNeeded event but not working.

Then I try to use a loop. It worked. But It's very slow.
It only changed 20-30 rows in 10 seconds. There are thousands rows in the datagridview.
So the performance is not acceptable. Please help. Appreciated!!

Please check code from attachment.
expertexchange.txt
0
Comment
Question by:jssong2000
  • 3
5 Comments
 
LVL 83

Expert Comment

by:CodeCruiser
ID: 39859379
So is it defaulting to true currently?
0
 

Author Comment

by:jssong2000
ID: 39859423
If I don't setup. The default value is null.
User has to click two times to make it checked. It's inconvenient.
0
 
LVL 40
ID: 39859543
Add a column to the table first. This could be done at the SQL level with a Select such as this one:

SELECT False AS Col1, Field1, Field2,...

Or add it to the DataTable in memory If you cannot add it to the SQL for some reason.

If you cannot do either, then you might consider the fact that the DataGridView events are often tricky to work with. For instance, when you fill a DataGridView, the validating events are often triggered uselessly, because one can assume that the data was already verified before it was stores in the database that provides the DataTable.

You might thus look at the events that are triggered when by your code, and deactivate it before you run it:

this.dataGridView1.RowValidating -= new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.dataGridView1_RowValidating);
this.dataGridView1.CellValidating -= new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.dataGridView1_CellValidating);
...

Run your code without the events, then add them back so that they are ready to trigger when the user starts interacting with the grid:

this.dataGridView1.RowValidating += new System.Windows.Forms.DataGridViewCellCancelEventHandler(this.dataGridView1_RowValidating);
this.dataGridView1.CellValidating += new System.Windows.Forms.DataGridViewCellValidatingEventHandler(this.dataGridView1_CellValidating);
0
 

Accepted Solution

by:
jssong2000 earned 0 total points
ID: 39859615
I found a solution:

checkColumn.ThreeState = false;
0
 

Author Closing Comment

by:jssong2000
ID: 39869814
I found a solution.
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

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

Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
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…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

914 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

21 Experts available now in Live!

Get 1:1 Help Now