[英]C# sending Datagridview data to textbox in another form
我必須以第一種形式形成一個datagrid視圖,其中顯示所有患者記錄,以第二種形式顯示新的或更新患者的形式。 當我單擊任何患者的第一個表單的更新按鈕時,那么datagrid視圖中的所有數據將填充第二個表單的文本框。 在主要形式中,我創建了一種添加帶有gridview數據的文本框的方法,這是該方法
public void datainsert(int i)
{
if (dgvPatientData.Rows.Count != 0)
{
form.txtpk.Text = dgvPatientData.Rows[i].Cells[0].Value.ToString();
form.txtacc.Text = dgvPatientData.Rows[i].Cells[1].Value.ToString();
form.accdate.Text = dgvPatientData.Rows[i].Cells[2].Value.ToString();
form.txtssn.Text = dgvPatientData.Rows[i].Cells[3].Value.ToString();
form.txtregno.Text = dgvPatientData.Rows[i].Cells[4].Value.ToString();
form.txtlname.Text = dgvPatientData.Rows[i].Cells[5].Value.ToString();
form.txtfname.Text = dgvPatientData.Rows[i].Cells[6].Value.ToString();
form.dob.Text = dgvPatientData.Rows[i].Cells[7].Value.ToString();
form.txtyears.Text = dgvPatientData.Rows[i].Cells[8].Value.ToString();
form.txtmonths.Text = dgvPatientData.Rows[i].Cells[9].Value.ToString();
form.combogender.Text = dgvPatientData.Rows[i].Cells[10].Value.ToString();
form.txtaddress.Text = dgvPatientData.Rows[i].Cells[11].Value.ToString();
form.txtzip1.Text = dgvPatientData.Rows[i].Cells[12].Value.ToString();
form.txtzip2.Text = dgvPatientData.Rows[i].Cells[13].Value.ToString();
form.txtstate1.Text = dgvPatientData.Rows[i].Cells[14].Value.ToString();
form.txtstate2.Text = dgvPatientData.Rows[i].Cells[15].Value.ToString();
form.txtphone.Text = dgvPatientData.Rows[i].Cells[16].Value.ToString();
form.txtfax.Text = dgvPatientData.Rows[i].Cells[17].Value.ToString();
form.txtchart.Text = dgvPatientData.Rows[i].Cells[18].Value.ToString();
form.txtpn.Text = dgvPatientData.Rows[i].Cells[19].Value.ToString();
form.Show();
this.Visible = false;
}
}
從更新按鈕,我正在調用上述方法
private void btnupdate_Click(object sender, EventArgs e)
{
var currentRow = dgvPatientData.CurrentCell.RowIndex;
datainsert(currentRow);
}
****問題是我在第二個表單上添加了上一個按鈕**,當我通過datagridview行索引-1時,它不起作用
我希望當我單擊上一個或下一個按鈕時,datagrid視圖中的數據顯示在所有文本框中。 提前致謝
嘗試以下方法:
private void btnupdate_Click(object sender, EventArgs e)
{
var currentRow = dgvPatientData.CurrentCell.RowIndex;
datainsert(currentRow - 1);
}
我在datainsert調用中添加了“ -1”。 我相信,由於currentRow是一個整數,因此datainsert(currentRow-1)應該可以工作。
讓我知道這個是否奏效。
您是否收到特定的錯誤消息? 這將有助於您解決問題。
我認為您應該在調用datainsert
函數時檢查RowIndex是否不為-1。
一種替代方法是使用以下方法獲取選定的行索引:
dgvPatientData.SelectedRows[0].Index
當然,您應該檢查是否已選擇至少一行(如果不允許選擇多行,則最多只能有一行)。
有點題外話,但可能有用。 我將使用DataGridViewCellCollection的字符串索引器 。 因此,代替:
gvPatientData.Rows[i].Cells[4].Value
建議使用類似:
gvPatientData.Rows[i].Cells["RegNo"].Value
當要求您在現有列的中間放置一列時,這一點尤其重要。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.