Datagridview full row selection but get single cell value

C#WinformsDatagridview

C# Problem Overview


I have a datagridview that is a full row select. How would I grab the data from only a certain cell no matter what cell in the row was clicked on since it highlights the entire row.

C# Solutions


Solution 1 - C#

You can do like this:

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 cellValue = Convert.ToString(selectedRow.Cells["enter column name"].Value);           
  }
}

Solution 2 - C#

If you want to get the contents of selected cell; you need the index of row and cell.

int rowindex = dataGridView1.CurrentCell.RowIndex;
int columnindex = dataGridView1.CurrentCell.ColumnIndex; 
    
dataGridView1.Rows[rowindex].Cells[columnindex].Value.ToString();

Solution 3 - C#

In the CellClick event you can write following code

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

Using the bove code you will get value of the cell you cliked. If you want to get value of paricular column in the clicked row, just replace e.ColumnIndex with the column index you want

Solution 4 - C#

I know, I'm a little late for the answer. But I would like to contribute.

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

This code is simple as piece of cake

Solution 5 - C#

you can get the values of the cell also as the current selection is referenced under CurrentRow

dataGridView1.CurrentRow.Cell[indexorname].FormattedValue

Here you can use index or column name and get the value.

Solution 6 - C#

Solution 7 - C#

I just want to point out, you can use .selectedindex to make it a little cleaner

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

Solution 8 - C#

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

Solution 9 - C#

Just Use: dataGridView1.CurrentCell.Value.ToString()

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

or

 // 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()

Solution 10 - C#

this get me the text value of exact cell in data grid view

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

you can see it in label and change # wih the index of the exact cell you want

Solution 11 - C#

Use Cell Click as other methods mentioned will fire upon data binding, not useful if you want the selected value, then the form to close.

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();
    }
}

Solution 12 - C#

For those who could not fire the click event, they may use following code

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

Solution 13 - C#

To get one cell value based on entire row selection:

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

Solution 14 - C#

Simplest code is DataGridView1.SelectedCells(column_index).Value

As an example, for the first selected cell:

DataGridView1.SelectedCells(0).Value

Solution 15 - C#

dataGridView1.SelectedRows[0].Cells[0].Value;

Solution 16 - C#

for vb.net 2013 i use

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

where i is the cell number

Solution 17 - C#

Assigns cell 1 of dgwProduct lines to ProductId.

private void btnUpdate_Click(object sender, EventArgs e)
    {
            ProductId = Convert.ToInt32(dgwProduct.CurrentRow.Cells[0].Value);
    }

Here it puts all the cells in the row into the textbox.

private void dgwProduct_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        var row=dgwProduct.CurrentRow;
        tbxProductName.Text =row.Cells[1].Value.ToString();
        tbxUnitPrice.Text = row.Cells[2].Value.ToString();
        tbxQuantityPerUnit.Text = row.Cells[3].Value.ToString();
        tbxStockUpdate.Text = row.Cells[4].Value.ToString();
    }

In this way, we assign all the cells in the dataGridView to the textboxes.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionTsukasaView Question on Stackoverflow
Solution 1 - C#Glory RajView Answer on Stackoverflow
Solution 2 - C#Özer ÖzcanView Answer on Stackoverflow
Solution 3 - C#Null PointerView Answer on Stackoverflow
Solution 4 - C#Rizwan IjazView Answer on Stackoverflow
Solution 5 - C#V4VendettaView Answer on Stackoverflow
Solution 6 - C#PolynomialView Answer on Stackoverflow
Solution 7 - C#Joe StellatoView Answer on Stackoverflow
Solution 8 - C#Ahtsham ShoukatView Answer on Stackoverflow
Solution 9 - C#Ahosan Karim AsikView Answer on Stackoverflow
Solution 10 - C#Eng.Mohamed BassunyView Answer on Stackoverflow
Solution 11 - C#ravenx30View Answer on Stackoverflow
Solution 12 - C#ElesmothView Answer on Stackoverflow
Solution 13 - C#Ashraf SadaView Answer on Stackoverflow
Solution 14 - C#ilkay kurtView Answer on Stackoverflow
Solution 15 - C#felixView Answer on Stackoverflow
Solution 16 - C#Farag AlargtView Answer on Stackoverflow
Solution 17 - C#Hakan BayazıtView Answer on Stackoverflow