Avatar of dominicwong
dominicwong
 asked on

How to set cells in datagridview to readonly and BackColor upon construction

Hi experts
I'd tried to set some cells in a datagridview to readonly and their BackColor to grey upon construction of a UserControl. But they didn't take effect.

I'd done some searches. It was said that it needs to be done inside "CellBeginEdit". My question is how to get that event to fire as part of the construction. Any other suggestion is welcomed.

Thanks in advance.
.NET ProgrammingC#

Avatar of undefined
Last Comment
dominicwong

8/22/2022 - Mon
Pratima

check this fro readonly

http://forums.asp.net/t/1072584.aspx/1

    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
        If e.Row.RowState = DataControlRowState.Edit And (e.Row.RowIndex = 0 Or e.Row.RowIndex = 1) Then
            e.Row.RowState = DataControlRowState.Normal
        End If
Pratima

dominicwong

ASKER
Thanks pratima_mcs.

I am using C# .NET, and I can't find the equivalent of your suggestion. The two lines I currently have in my code are:
They don't work during construction but can only work during cell edit mode.
dgv.Rows[rowIndex].Cells["columnName"].ReadOnly = true;
dgv.Rows[rowIndex].Cells["columnName"].Style.BackColor = Color.LightGray;
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes
dominicwong

ASKER
By the way, my dgv is bound to a DataSource.
Bob Learned

Can you explain what you mean by "They don't work during construction but can only work during cell edit mode."?
dominicwong

ASKER
What I have is a dgv. This dgv is on a UserControl and is displayed only when a user initiated it (eg. clicking a treenode). ie. at run-time.

This dgv consists of two columns, and is data-binded to a DataSource.
Dependent upon the value on the left-hand side column, the corresponding entry on the right-hand column will be made either editable with a white background, or readonly with a grey background.

What I meant by "don't work during construction" is when user clicks a node to initiate the UserControl construction. It constructs the dgv, creates the data-binding, checks each entry on the left-hand side column and sets the right-hand side column accordingly.
Unfortunately, making them readonly and setting the background color did not take any effect at all.

On the other hand, after it is constructed when I edit a cell on the left-hand side column (eg. changing selection), I could make the corresponding cell on the right-hand side readonly with grey background color.

Your help will be appreciated. Thanks in advance.
Get an unlimited membership to EE for less than $4 a week.
Unlimited question asking, solutions, articles and more.
dominicwong

ASKER
I'd tried out with a simple example but this one works fine.
Any idea what could cause the setting on the properties BackColor and ReadOnly not to take any effect?
ASKER CERTIFIED SOLUTION
dominicwong

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
dominicwong

ASKER
It resolved the issue