DataGridView在C#中选择数据并将其显示给一个文本框

问题描述:

我正在处理一个Windows窗体应用程序,我已经使datagridview显示我的数据,但我也想从Datagridview中选择一些特定的列,并将它们显示为只有一个文本框。DataGridView在C#中选择数据并将其显示给一个文本框

我已经尝试过,但它只获取名为“SEIKEN_NO”的文本框的最后一列,但我想要在一个文本框中显示多个列值。

private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) 
    { 
     // to set oem no, fic_no and seiken_no to textbox named particular1Txt. 

     dataGridView1.Refresh(); 

     try 
     { 
      if (RB1.Checked == true) 
      { 
       int i; 
       i = dataGridView1.SelectedCells[0].RowIndex; 

       Particular1Txt.Text = dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString(); 
       Particular1Txt.Text = dataGridView1.Rows[i].Cells["OEM_No"].Value.ToString(); 
       Particular1Txt.Text = dataGridView1.Rows[i].Cells["Seiken_NO"].Value.ToString(); 
      } 
      else if (RB2.Checked == true) 
      { 
       int i; 
       i = dataGridView1.SelectedCells[0].RowIndex; 
       Particular2Txt.Text = dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString(); 
       Particular2Txt.Text = dataGridView1.Rows[i].Cells["OEM_No"].Value.ToString(); 
       Particular2Txt.Text = dataGridView1.Rows[i].Cells["Seiken_NO"].Value.ToString(); 
      } 
+1

甲'TextBox'通常应该显示的单个字段。但是,如果出于任何原因想要在其中显示多个字段,只需使用'''等分隔符连接字符串,并将结果显示在“TextBox”中。 –

+1

它看起来像你问[一个非常类似的问题(https://stackoverflow.com/q/46539704/472495)几个星期前,但奇怪的是,你似乎没有回信了谁帮助你的人。如果注意到您努力回复提供援助的人,您将更有可能在此获得帮助。 – halfer

富勒每次数据分配到TextBox行:

Particular1Txt.Text = dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString();

变化:

Particular1Txt.Text += dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString();

注意+=

否则你是overw riting文本框

的含量值级联格式,您可以:使用的String.Format()

+= " " + dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString(); // very basic way to do it

另一种方式例如

Particular1Txt.Text=String.Format({0} {1} {2}), dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString(),dataGridView1.Rows[i].Cells["OEM_No"].Value.ToString(),dataGridView1.Rows[i].Cells["Seiken_No"].Value.ToString(); 

您还可以使用:字符串。加入()与字符串数组,或StringBuilder类,

希望这有助于你

+0

非常感谢你的工作,但是如何在文本框中的每个列值之间创建空间?你能告诉PLZ吗? –

+0

如果这解决了您的问题,请将答案标记为正确的答案,而不是您 – Ferus7

private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) 
{ 
    // to set oem no, fic_no and seiken_no to textbox named particular1Txt. 
    dataGridView1.Refresh(); 
    try 
    { 
     if (RB1.Checked == true) 
     { 
      int i; 
      i = dataGridView1.SelectedCells[0].RowIndex; 
      Particular1Txt.Text = dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString()+" "+ dataGridView1.Rows[i].Cells["OEM_No"].Value.ToString()+" "+dataGridView1.Rows[i].Cells["Seiken_NO"].Value.ToString(); 
     } 
     else if (RB2.Checked == true) 
     { 
      int i; 
      i = dataGridView1.SelectedCells[0].RowIndex; 
      Particular1Txt.Text = dataGridView1.Rows[i].Cells["FIC_No"].Value.ToString()+" "+ dataGridView1.Rows[i].Cells["OEM_No"].Value.ToString()+" "+dataGridView1.Rows[i].Cells["Seiken_NO"].Value.ToString(); 
     } 
    } 
}