답변:
넌 할 수있어:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
yourDataGridView.Rows.Add(row);
또는:
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["Column2"].Value = "XYZ";
row.Cells["Column6"].Value = 50.2;
yourDataGridView.Rows.Add(row);
또 다른 방법:
this.dataGridView1.Rows.Add("five", "six", "seven","eight");
this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");
보낸 사람 : http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rows.aspx
RowTemplate
합니다 DataGridView
. 의 다른 행에 서로 다른 스타일이있는 경우 더 많은 문제가됩니다 DataGridView
.
이처럼 :
var index = dgv.Rows.Add();
dgv.Rows[index].Cells["Column1"].Value = "Column1";
dgv.Rows[index].Cells["Column2"].Value = 5.6;
//....
데이터 세트에 바인딩되지 않은 datagridview가 있고 프로그래밍 방식으로 새 행을 채우고 싶다고 가정 해 보겠습니다.
방법은 다음과 같습니다.
// Create a new row first as it will include the columns you've created at design-time.
int rowId = dataGridView1.Rows.Add();
// Grab the new row!
DataGridViewRow row = dataGridView1.Rows[rowId];
// Add the data
row.Cells["Column1"].Value = "Value1";
row.Cells["Column2"].Value = "Value2";
// And that's it! Quick and painless... :o)
datagridview.Columns.Add("columnname")
, DataTable을 필요로하지 않으며, 미소로 끝나는 유일한 솔루션입니다
이처럼 :
dataGridView1.Columns[0].Name = "column2";
dataGridView1.Columns[1].Name = "column6";
string[] row1 = new string[] { "column2 value", "column6 value" };
dataGridView1.Rows.Add(row1);
또는 다음 .Rows()
과 같이 속성을 개별적으로 사용하여 값을 설정해야합니다 .
dataGridView1.Rows[1].Cells[0].Value = "cell value";
dataGridView1.Rows[1].Cells[0].Value = "cell value"
;
아니 행으로 DGV에 새 행을 추가 추가 ()는 던질 수 인 selectionchanged 당신이 어떤 데이터를 삽입하기 전에 이벤트를 (또는 바인드 태그 속성의 객체).
RowTemplate 에서 복제 행을 만드는 것이 더 안전합니다.
//assuming that you created columns (via code or designer) in myDGV
DataGridViewRow row = (DataGridViewRow) myDGV.RowTemplate.Clone();
row.CreateCells(myDGV, "cell1", "cell2", "cell3");
myDGV.Rows.Add(row);
이것은 dgrview가 비어있는 경우 행을 추가하는 방법입니다. (myDataGridView에는 예제에 두 개의 열이 있습니다)
DataGridViewRow row = new DataGridViewRow();
row.CreateCells(myDataGridView);
row.Cells[0].Value = "some value";
row.Cells[1].Value = "next columns value";
myDataGridView.Rows.Add(row);
문서에 따르면 : "CreateCells ()는 기존 셀을 지우고 제공된 DataGridView 템플릿에 따라 템플릿을 설정합니다."
여기에 다른 방법이 있습니다
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
dataGridView1.ColumnCount = 3;
dataGridView1.Columns[0].Name = "Name";
dataGridView1.Columns[1].Name = "Age";
dataGridView1.Columns[2].Name = "City";
dataGridView1.Rows.Add("kathir", "25", "salem");
dataGridView1.Rows.Add("vino", "24", "attur");
dataGridView1.Rows.Add("maruthi", "26", "dharmapuri");
dataGridView1.Rows.Add("arun", "27", "chennai");
}
태그 추가와 같이 셀 값 문자열 이외의 것을 조작해야하는 경우 다음을 시도하십시오.
DataGridViewRow newRow = (DataGridViewRow)mappingDataGridView.RowTemplate.Clone();
newRow.CreateCells(mappingDataGridView);
newRow.Cells[0].Value = mapping.Key;
newRow.Cells[1].Value = ((BusinessObject)mapping.Value).Name;
newRow.Cells[1].Tag = mapping.Value;
mappingDataGridView.Rows.Add(newRow);
yourDGV.Rows.Add(column1,column2...columnx); //add a row to a dataGridview
yourDGV.Rows[rowindex].Cells[Cell/Columnindex].value = yourvalue; //edit the value
새 행을 만든 다음 다음과 같이 DataGridView에 추가 할 수도 있습니다.
DataGridViewRow row = new DataGridViewRow();
row.Cells[Cell/Columnindex].Value = yourvalue;
yourDGV.Rows.Add(row);
리스트를 바인딩하는 경우
List<Student> student = new List<Student>();
dataGridView1.DataSource = student.ToList();
student .Add(new Student());
//Reset the Datasource
dataGridView1.DataSource = null;
dataGridView1.DataSource = student;
DataTable을 바인딩하는 경우
DataTable table = new DataTable();
DataRow newRow = table.NewRow();
// Add the row to the rows collection.
table.Rows.Add(newRow);
dataGridView에서 행을 복사하고 동일한 dataGridView에 새 행을 추가 한 예 :
DataTable Dt = new DataTable();
Dt.Columns.Add("Column1");
Dt.Columns.Add("Column2");
DataRow dr = Dt.NewRow();
DataGridViewRow dgvR = (DataGridViewRow)dataGridView1.CurrentRow;
dr[0] = dgvR.Cells[0].Value;
dr[1] = dgvR.Cells[1].Value;
Dt.Rows.Add(dR);
dataGridView1.DataSource = Dt;
피고측은 이미 정의 된 경우 DataSource
, 당신은 얻을 수 DataGridView
의를 DataSource
하고로 캐스팅 Datatable
.
그런 다음 새 DataRow
값을 추가 하고 필드 값을 설정하십시오.
에 새 행을 추가하고 DataTable
변경 사항을 승인하십시오.
C #에서는 다음과 같습니다.
DataTable dataTable = (DataTable)dataGridView.DataSource;
DataRow drToAdd = dataTable.NewRow();
drToAdd["Field1"] = "Value1";
drToAdd["Field2"] = "Value2";
dataTable.Rows.Add(drToAdd);
dataTable.AcceptChanges();
string[] splited = t.Split('>');
int index = dgv_customers.Rows.Add(new DataGridViewRow());
dgv_customers.Rows[index].Cells["cust_id"].Value=splited.WhichIsType("id;");
그러나 WhichIsType
내가 만든 확장 방법은 알고 있습니다 .
datagridview1.DataSource = yourDataTable