Datagridview完整行选择但获取单个单元格值

时间:2011-10-05 05:42:40

标签: c# datagridview

我有一个完整行选择的datagridview。 如果点击行中的哪个单元格,我将如何仅从某个单元格中获取数据,因为它突出显示整行。

15 个答案:

答案 0 :(得分:78)

你可以这样做......

     private void datagridview1_SelectionChanged(object sender, EventArgs e)
     {
         if (datagridview1.SelectedCells.Count > 0)
         {
             int selectedrowindex = datagridview1.SelectedCells[0].RowIndex;

             DataGridViewRow selectedRow = datagridview1.Rows[selectedrowindex];  

              string a = Convert.ToString(selectedRow.Cells["you have to mention you cell  corresponding column name"].Value);           


         }
     }

答案 1 :(得分:18)

如果要获取所选单元格的内容;你需要行和单元格的索引。

int rowindex = dataGridView1.CurrentCell.RowIndex;
int columnindex = dataGridView1.CurrentCell.ColumnIndex; 

dataGridView1.Rows[rowindex].Cells[columnindex].Value.ToString();

答案 2 :(得分:7)

在CellClick事件中,您可以编写以下代码

string value =
      datagridviewID.Rows[e.RowIndex].Cells[e.ColumnIndex].FormattedValue.ToString();

使用bove代码,您将获得您所穿过的单元格的价值。如果要在单击的行中获取paricular列的值,只需将e.ColumnIndex替换为您想要的列索引

答案 3 :(得分:3)

您也可以在CurrentRow

下引用当前选择时获取单元格的值
dataGridView1.CurrentRow.Cell[indexorname].FormattedValue

您可以在此处使用索引或列名称并获取值。

答案 4 :(得分:2)

我只想指出,你可以使用.selectedindex使它更清洁

string value = gridview.Rows[gridview.SelectedIndex].Cells[1].Text.ToString();

答案 5 :(得分:2)

string value = dataGridVeiw1.CurrentRow.Cells[1].Value.ToString();

答案 6 :(得分:1)

答案 7 :(得分:1)

只需使用: dataGridView1.CurrentCell.Value.ToString()

        private void dataGridView1_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            MessageBox.Show(dataGridView1.CurrentCell.Value.ToString());
        }

 // dataGrid1.Rows[yourRowIndex ].Cells[yourColumnIndex].Value.ToString()

 //Example1:yourRowIndex=dataGridView1.CurrentRow.Index (from selectedRow );
 dataGrid1.Rows[dataGridView1.CurrentRow.Index].Cells[2].Value.ToString()

 //Example2:yourRowIndex=3,yourColumnIndex=2 (select by programmatically )
  dataGrid1.Rows[3].Cells[2].Value.ToString()

答案 8 :(得分:1)

这让我得到数据网格视图中精确单元格的文本值

private void dataGridView_SelectionChanged(object sender, EventArgs e)
    {
        label1.Text = dataGridView.CurrentRow.Cells[#].Value.ToString();
    }

您可以在标签中看到它并更改#wih您想要的确切单元格的索引

答案 9 :(得分:1)

我知道,答案有点晚了。但我想做出贡献。

DataGridView.SelectedRows[0].Cells[0].Value

这段代码很简单,就像小菜一样

答案 10 :(得分:0)

使用Cell Click,因为提到的其他方法将触发数据绑定,如果您想要所选的值,则无用,然后关闭表单。

private void dgvProducts_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (dgvProducts.SelectedCells.Count > 0) // Checking to see if any cell is selected
    {
        int mSelectedRowIndex = dgvProducts.SelectedCells[0].RowIndex;

        DataGridViewRow mSelectedRow = dgvProducts.Rows[mSelectedRowIndex];

        string mCatagoryName = Convert.ToString(mSelectedRow.Cells[1].Value);

        SomeOtherMethod(mProductName); // Passing the name to where ever you need it

        this.close();
    }
}

答案 11 :(得分:0)

对于那些无法触发点击事件的人,他们可能会使用以下代码

public Form1()
            {
                InitializeComponent();
                this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick);
            }

答案 12 :(得分:0)

根据整行选择获取一个单元格值:

if (dataGridView1.SelectedRows.Count > 0)
      {
         foreach (DataGridViewRow row in dataGridView1.Rows)
           {
               TextBox1.Text = row.Cells["ColumnName"].Value.ToString();
           }
      }
else
      {
        MessageBox.Show("Please select item!");
      }
     }

答案 13 :(得分:0)

最简单的代码是DataGridView1.SelectedCells(column_index).Value

例如,对于第一个选定的单元格:

DataGridView1.SelectedCells(0).Value

答案 14 :(得分:0)

我使用的vb.net 2013

DataGridView1.SelectedRows.Item(0).Cells(i).Value

其中我是手机号码