2011-04-29 4 views
2

winforms 응용 프로그램을 작성 중입니다. 내 양식에서 간단히 DataGridView 컨트롤을 끌어다 놓은 다음 속성 창을 사용하여 해당 속성 중 일부를 설정합니다. 다음은 DataGridView를 채우는 데 사용하는 코드입니다. 이 코드를 생성자 안에 썼습니다.C# : Datagridview에 데이터가 표시되지 않습니다.

List<MyCustomClass> lst = new List<MyCustomClass>(); 
lst = LoadList(/*some params here*/);//now uptil this point everything works i.e the list contains values as desribed. 
dataGridView1.DataSource = lst; 

문제는 내가 프로그램을 실행할 때 아무 것도 내 DataGridView에 표시되지 않는다는 것입니다. 다음 코드 자세한 내용은

내가 데이터 소스를 지정하기 전에이 코드를 추가하면 괜찮을 속성 창

 this.dataGridView1.AllowUserToAddRows = false; 
     this.dataGridView1.AllowUserToDeleteRows = false; 
     this.dataGridView1.AllowUserToResizeRows = false; 
     this.dataGridView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
        | System.Windows.Forms.AnchorStyles.Right))); 
     this.dataGridView1.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; 
     this.dataGridView1.BackgroundColor = System.Drawing.Color.White; 
     this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; 
     this.dataGridView1.GridColor = System.Drawing.Color.White; 
     this.dataGridView1.Location = new System.Drawing.Point(2, 329); 
     this.dataGridView1.Margin = new System.Windows.Forms.Padding(2); 
     this.dataGridView1.MultiSelect = false; 
     this.dataGridView1.Name = "dataGridView1"; 
     this.dataGridView1.RowHeadersVisible = false; 
     this.dataGridView1.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; 
     this.dataGridView1.Size = new System.Drawing.Size(334, 106); 
     this.dataGridView1.TabIndex = 0; 
+0

확인을 작동 ** AutoGenerateColumns이 ** 속성은, 사람들이 응답하기 전에 태그가 표시되지 않는 이유 진정한 – V4Vendetta

+0

로 설정하십시오. 이 게시물은 ASP.NET과 아무런 관련이 없습니다. – deostroll

+0

@Jame 속성을 확인 했습니까? – V4Vendetta

답변

3

를 사용하여 설정 한 속성을 나타냅니다

dataGridView1.AutoGenerateColumns = true; 

편집

또한 C의 내용을 표시하는 데 사용될 공용 속성이 있는지 확인하십시오. DataGridView의 열로 채우기

+1

AutoGenerateColumns의 기본값은 true이며, 터치하지 않은 경우 true를 다시 할당 할 포인트가 없습니다. – JPReddy

+1

@JPReddy 매우 사실 ..하지만 값이 변경되었는지 여부는 언급되지 않았습니다. – V4Vendetta

5

DataGrid에 대한 데이터 열을 만들어야합니다. 존중하는 DataSource 항목의 속성 (즉, 'MyCustomClass'클래스의 속성)을 사용하여 각 열의 'DataPropertyName'속성도 설정해야합니다. 마지막에

-4

넣고이 :

datagridview1.Databind(); 

이해야한다.

+2

Winforms DataGrid에는 Databind()라는 메서드가 없습니다. –

1

오늘 거의 같은 결과를 얻었습니다. 문제는 공공 자동 속성으로 변경했기 때문에 내 건물에 속성이 아닌 공개 필드가 있다는 것이 었습니다.

0

디자이너에서 바인딩 할 때 동일한 문제가 있습니다. 내가 생성자에 바인딩하고있어 경우 그것은 잘

dataGridView1.DataSource = personBindingSource; 
personBindingSource.DataSource = persons; 
관련 문제