2013-01-23 3 views
0

저는 초보자입니다. 아마도 제 질문은 당신 중 일부에게 순진 해 보일 것입니다.이 DataGridView에 행을 만들고 연결하는 방법은 무엇입니까?

나는의 WinForm 프로젝트에서 DataGridView에 테이블이 : 그것은 세 개의 열 (이미지, 콤보 상자와 텍스트 상자 열)를 포함 enter image description here

.

이 테이블에 행을 만들고 연결하는 방법에 대해 알고 싶습니다.

미리 감사드립니다.

+0

DataGridView를 만드는 데 사용한 코드는 어디에 있습니까? 이 DataGridView에 어떤 유형의 데이터를 바인딩 하시겠습니까? 데이터베이스에서 데이터를 가져오고 싶습니까? 콜렉션에서 .. etc – MethodMan

답변

1

데이터 소스를 만든 다음 데이터 소스를 모눈의 DataSource 속성에 바인딩합니다. 그런 다음 데이터 원본에 레코드를 추가합니다.

// create data source 
BindingList<Shape> dataSource = new BindingList<Shape>(); 

// add record to data source 
dataSource.Add(new Shape("Some Contour", "Circle", "Some Name")); 

// bind data source 
yourDataGridView.DataSource = typeof(BindingList<Shape>); 
yourDataGridView.DataSource = dataSource; 

는 Shape 클래스의 일치에 각 열의 필드의 이름을 DataPropertyName를 설정합니다.

DataGridViewTextBoxColumn colName = new DataGridViewTextBoxColumn(); 
colName.DataPropertyName = "Name"; 

yourDataGridView.Columns.Add(colName); 

그러나, 나는 당신이 대신 별도의 분리 된 데이터를 유지하는 Virtual Mode를 사용하는 것이 좋습니다.

1

사용자가 입력을 받아들이려면이 페이지에서 사용자가 입력 할 수있는 양식을 만들어야합니다. 이 값들을 가져 와서 DataTable에 추가하십시오. 그것을 보여주는 샘플 조각은 다음과 같은 :

DataTable dt = new DataTable(); 
dt.Columns.Add("Contour",typeof(string)); //I am assuming that you will store path 
              //of image in the DataTable 
dt.Columns.Add("Shape",typeof(string)); 
dt.Columns.Add("Name",typeof(string)); 

보관할 DataTable을에 새 행을 추가하면 사용자로부터 입력을받을 같이

DataRow row = dt.NewRow(); 
row["Contour"] = txtContourPath.Text; 
row["Shape"] = ddlShape.SelectedValue; 
row["Name"] = txtName.Text; 
dt.Rows.Add(row); 

지정 DataTable에 위의 GridView의 데이터 소스 속성에.

dgv.DataSource = dt; 
1

당신이 방법을 사용할 수 있습니다

  1. dataGridView1.Rows.Insert (...)
  2. dataGridView1.Rows.Add (...)를
  3. 제이의 대답 : dataGridView1를 사용합니다. DataSource = dataSource;

희망을 부탁드립니다.

관련 문제