2011-10-13 55 views
1

我想從DataGridView控件填補按鈕單擊事件數據填寫文本框:如何從DataGridView上的按鈕單擊事件

enter image description here

我這樣的代碼

for (int i = 0; i < dgv_EmpAttList.Columns.Count; i++) 
{ 
    txt_EnrollNo.Text = this.dgv_EmpAttList.CurrentRow.Cells[i].Value.ToString(); 
    txt_FirstInTime.Text = this.dgv_EmpAttList.CurrentRow.Cells[i].Value.ToString(); 
    txt_LastOutTime.Text = this.dgv_EmpAttList.CurrentRow.Cells[i].Value.ToString(); 
    txt_TotalHours.Text = this.dgv_EmpAttList.CurrentRow.Cells[i].Value.ToString(); 
} 
+1

什麼寫的代碼?你使用哪些代碼?選擇一個,你不能有兩個! – musefan

+0

有什麼問題?你甚至得到一個? – christofr

+0

你錯了.net和vb.net? .net是一個框架和c#和vb.net是不同的lang w巫婆是可以用.net寫入。 vb.net被命名爲vb.net,不會被誤認爲vb早期版本,而不是.net框架的一部分。 – Olle89

回答

1

通過你的列循環在這裏可能無濟於事。

嘗試分配每個文本框,它是映射到小區:

txt_EnrollNo.Text = this.dgv_EmpAttList.CurrentRow.Cells[1].Value.ToString(); 
txt_FirstInTime.Text = this.dgv_EmpAttList.CurrentRow.Cells[2].Value.ToString(); 
+0

確定但出現錯誤:: mscorlib.dll中發生未處理的異常類型'System.ArgumentOutOfRangeException' 更多信息:指數超出範圍。必須是非負數且小於集合的大小。 – Jig12

+0

@ Jig12確保您錯誤檢查您選擇了CurrentRow,並且您的單元格索引與您的列索引匹配。 – LarsTech

+0

現在我明白了,但我單擊網格查看行獲得價值點擊,但我希望所有的價值下clik事件 – Jig12

0

爲什麼你必須使用循環?只要你能寫

txt_EnrollNo.Text = this.dgv_EmpAttList.CurrentRow.Cells[0].Value.ToString(); 
txt_FirstInTime.Text = this.dgv_EmpAttList.CurrentRow.Cells[1].Value.ToString(); 
txt_LastOutTime.Text = this.dgv_EmpAttList.CurrentRow.Cells[2].Value.ToString(); 
txt_TotalHours.Text = this.dgv_EmpAttList.CurrentRow.Cells[3].Value.ToString(); 

編輯:

然後在按鈕點擊發送行更新和如下

txt_EnrollNo.Text = row.Cells[0].Value.ToString(); //where row is DataGridViewRow 
+0

下,但我想填充所有datagridview記錄逐個事件顯示在文本框上。這只是代碼只取一行記錄,所以 – Jig12

+0

@ Jig12,請參考已編輯的代碼行 –

+0

我得到錯誤:::在JERP2010.exe中發生未處理的異常類型'System.NullReferenceException' 附加信息:對象引用未設置爲對象的實例。 – Jig12