2010-08-04 7 views
1

이것은 생성자 실행 순서를 이해하지 못하거나 DataGridViews의 ReadOnly 필드의 우선 순위를 이해하지 못합니다. 내가 셀을 편집 가능하게하려면파생 DataGridViewCell에 ReadOnly 속성 설정

class Form1 : Form 
{ 
    public Form1() 
    { 
     DataGridView gv = new DataGridView(); 
     Controls.Add(gv); 
     gv.Columns.Add("foo","foo"); 
     gv.Rows[gv.Rows.Add()].ReadOnly = true; 
     gv[0,0] = new DerivedCell(); 
     //gv[0,0].ReadOnly = false; 
    } 
} 

class DerivedCell : DataGridViewTextBoxCell 
{ 
    public DerivedCell() 
    { 
     ReadOnly = false; 
    } 
} 

주석으로 라인이 필요하지만이 DerivedCell의의 ctor에서 처리되지 왜 이해가 안 돼요.

답변

0

대신 할 경우,이

DataGridViewTextBoxCell foo = new DerivedCell(); 
gv[0, 0] = foo; 

당신이 foo.ReadOnly이 두 번째 줄 이후 첫 번째 줄 이후 false하지만 true 것을 볼 수 있습니다. 따라서이 작업을 수행하는 DataGridView의 인덱서입니다 (이전 셀에 있던 값으로 새 셀의 ReadOnly 속성을 설정 함). 왜 나 한테 물어 보지 마라.

관련 문제