Подтвердить что ты не робот

Выбор полной строки Datagridview, но получить значение одной ячейки

У меня есть datagridview, который является выбором полной строки. Как бы я захватил данные только из определенной ячейки независимо от того, какая ячейка в строке была нажата, поскольку она выделяет всю строку.

4b9b3361

Ответ 1

Вы можете сделать вот так:

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


         }
     }

Ответ 2

Если вы хотите получить содержимое выбранной ячейки; вам нужен индекс строки и ячейки.

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

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

Ответ 3

В событии CellClick вы можете написать следующий код

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

Используя код bove, вы получите значение ячейки, которую вы кликнули. Если вы хотите получить значение столбца в столбце в щелчке, просто замените e.ColumnIndex индексом столбца, который вы хотите

Ответ 4

вы можете получить значения ячейки также, поскольку текущий выбор ссылается в CurrentRow

dataGridView1.CurrentRow.Cell[indexorname].FormattedValue

Здесь вы можете использовать имя индекса или столбца и получить значение.

Ответ 5

Я просто хочу указать, вы можете использовать .selectedindex, чтобы сделать его немного чистым.

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

Ответ 6

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

Ответ 8

Просто использовать: 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()

Ответ 9

это даст мне текстовое значение точной ячейки в виде сетки данных

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

вы можете увидеть его в ярлыке и изменить # с индексом нужной ячейки, которую вы хотите

Ответ 10

Я знаю, я немного опоздал на ответ. Но я хотел бы внести свой вклад.

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

Этот код прост как кусок пирога

Ответ 11

Используйте 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();
    }
}

Ответ 12

Для тех, кто не смог запустить событие click, они могут использовать следующий код

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

Ответ 13

Чтобы получить одно значение ячейки на основе всего выбора строки:

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

Ответ 14

Простейший код DataGridView1.SelectedCells(column_index).Value

В качестве примера для первой выбранной ячейки:

DataGridView1.SelectedCells(0).Value