Как получить значение ячейки DataGridView в messagebox?
Как я могу получить значение ячейки DataGridView для записи в MessageBox в C#?
8 ответов
можно использовать DataGridViewCell.Значение свойство для извлечения значения, хранящегося в определенной ячейке.
таким образом, чтобы получить значение "первой" выбранной ячейки и отобразить в MessageBox, вы можете:
MessageBox.Show(dataGridView1.SelectedCells[0].Value.ToString());
выше, наверное, не совсем то, что вам нужно сделать. Если вы предоставите более подробную информацию мы можем предоставить лучшую помощь.
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
    if (dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value != null)
    {
       MessageBox.Show(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
    }
}
   private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        MessageBox.Show(Convert.ToString(dataGridView1.CurrentCell.Value));
    }
немного поздно, но надеюсь, что это помогает
      try
        {
            for (int rows = 0; rows < dataGridView1.Rows.Count; rows++)
            {
                for (int col = 0; col < dataGridView1.Rows[rows].Cells.Count; col++)
                {
                    s1 = dataGridView1.Rows[0].Cells[0].Value.ToString();
                    label20.Text = s1;
                }
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show("try again"+ex);
        }
Я добавил Это к кнопке datagrid, чтобы получить значения ячеек в строке, которую пользователь нажимает:
string DGCell = dataGridView1.Rows[e.RowIndex].Cells[X].Value.ToString();
где X-ячейка, которую вы хотите проверить. Счетчик столбцов Datagrid начинается с 1, а не 0 в моем случае. Не уверен, что это значение по умолчанию datagrid или потому, что я использую SQL для заполнения информации.
суммировать все ячейки
        double X=0;
        if (datagrid.Rows.Count-1 > 0)
        {
           for(int i = 0; i < datagrid.Rows.Count-1; i++)
            {
               for(int j = 0; j < datagrid.Rows.Count-1; j++)
               {
                  X+=Convert.ToDouble(datagrid.Rows[i].Cells[j].Value.ToString());
               }
            } 
        }
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
           int rowIndex = e.RowIndex;
            DataGridViewRow row = dataGridView1.Rows[rowIndex];
            MessageBox.Show(row.Cells[rowIndex].Value.ToString());
    }
