2012-08-03 2 views
0

CellFormatting 이벤트로 DataGridView winform에서 이미지를 표시하는 코드를 작성했습니다. 잘 작동하지만 이미지로 변경된 셀은 계속 새로 고칩니다. 어떻게해야합니까? 대신 직접이 데이터 소스를 수정해야합니다 세포를 수정DataGridview에서 새롭게 새로 고침

dgvUnknownPayed.Rows[e.RowIndex].Cells[colStateImage.Name].Value = Properties.Resources.undo; 

답변

1

:

이것은 CellFormatting 내 코드입니다.

Datagridview1.datasouce = datatable1.defaultview(); 

foreach (DataRow row in datatable1.Rows) 
{ 
    row.BeginEdit(); 
    row[2] = ‘Something_Here’; 
    row.EndEdit(); 
} 

모든 새로 고침 사용이 중지하려면 :

DataGrid.SuspendLayout(); //Stops refreshing
DataGrid.ResumeLayout(); //Re-Enable refreshing

DataTable 당신이 당신의 DataGridView에 데이터를 바인딩이 경우에 사용하는 .NET 개체입니다.

DataTable datatable1 = new DataTableDataTable의 새 인스턴스를 만듭니다.
Datagridview1.datasouce = datatable1.defaultview(); datatable1을 그리드 용 데이터 소스로 바인드합니다. 테이블이 바뀔 때마다 그리드가 업데이트됩니다.

이제이 표를 사용하면 다음과 같이 진행할 수 있습니다. 당신이 컬럼의 이름과에 입력 할 데이터 유형을 지정하는 경우이 table.Columns.Add("Division", typeof(int));처럼 열을 추가

  • (이건 그냥 예입니다). SQL Server와 비슷합니다.
  • table.Rows.Add(Something)과 같은 행을 추가합니다 (이 경우 무언가는 Integer입니다).

이렇게 간단합니다. Integer 유형을 원하는대로 변경하십시오. 이것이 단순한 예임을 잊지 마십시오. 귀하는 더 많은 열과 행을 추가 할 수 있습니다. 도움을 주셔서 감사합니다.

+0

하지만 난 이미지에 대한 내 데이터 소스에 세포가 없어, 내 datagridview에만있다. 이 경우에 datatable이 무엇인지 말해 주시겠습니까? – Mehdi

+0

문제 없습니다. StackOverflow에 오신 것을 환영합니다. 당신이 찾고있는 대답을 찾으면 대답의 점수 아래에있는 체크 표시로이 질문을 대답으로 표시하는 것을 잊지 마십시오. – phadaphunk

+0

도와주세요. – Mehdi

관련 문제