用于从选定的数据网格行填充文本框的按钮

时间:2014-06-26 16:15:24

标签: c# datagrid

我遇到以下问题这个vb看起来很像我想要做的:Clicking on a datagrid row and displaying its contents in textboxes。 有人可以对这些专栏有所了解:

  ,[empLastName]
  ,[empFirstName]
  ,[empExtension]
  ,[empEmail]
  ,[empOfficeCode]
  ,[empReportsTo]
  ,[empJobTitle]
  ,[empActive]

我需要通过点击一个名为SelectedCells的按钮将所有阀门从它取出到一个多行文本框。

到目前为止,这是按钮代码,是的,它只是将行数据带到文本框中:

private void selectedCellsButton_Click_1(object sender, DataGridViewCellEventArgs e)
        {
            {
                Int32 selectedCellCount =
                    dataGridView1.GetCellCount(DataGridViewElementStates.Selected);
                if (selectedCellCount > 0)
                {
                    if (dataGridView1.AreAllCellsSelected(true))
                    {
                        MessageBox.Show("All cells are selected", "Selected Cells");
                    }
                    else
                    {
                        System.Text.StringBuilder sb =
                            new System.Text.StringBuilder();

                        for (int i = 0;
                            i < selectedCellCount; i++)
                        {
                            sb.Append("Row: ");
                            sb.Append(dataGridView1.SelectedCells[i].RowIndex
                                .ToString());
                            sb.Append(", Column: ");
                            sb.Append(dataGridView1.SelectedCells[i].ColumnIndex
                                .ToString());
                            sb.Append(Environment.NewLine);
                        }

                        sb.Append("Total: " + selectedCellCount.ToString());
                        MessageBox.Show(sb.ToString(), "Selected Cells");
                        double[] list = new double[9];


                          Cvalve.Text = dataGridView1.SelectedRows[0].Cells["empNumber"].Value.ToString();

                    }
                }
            }
        }

如果有人可以指出它出错的地方,并且可能会在代码本身的某些指导下指出正确的方向。

1 个答案:

答案 0 :(得分:0)

你在寻找这样的东西:

DataGridViewRow row = dataGridView1.SelectedRows[0];

Cvalve.Text  = row.Cells["empNumber"].Value.ToString() + Environment.NewLine;    
Cvalve.Text += row.Cells["empLastName"].Value.ToString() + Environment.NewLine;    
//...    
Cvalve.Text += row.Cells["empJobTitle"].Value.ToString() + Environment.NewLine;    
Cvalve.Text += row.Cells["empActive"].Value.ToString() ;

您需要决定要显示哪一行。如果您将DataGridView.SelectionMode设置为CellSelect,则用户可以选择没有选择行的单元格。然后你可以使用

DataGridViewRow row = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex];

而是显示第一个选定单元格行的数据。