Как получить значение из datagridview c
Перейти к содержимому

Как получить значение из datagridview c

  • автор:

Как получить значение строки в DataGridView в C#

В этой статье мы рассмотрим, как получить значение строки в элементе управления DataGridView в C#. DataGridView предоставляет удобный способ отображения и редактирования данных в виде таблицы. Для доступа к значениям конкретной строки нам понадобится использовать индекс строки и индекс столбца. Рассмотрим несколько примеров для выполнения этой задачи.

Пример 1: Получение значения строки по индексу

Для получения значения строки в DataGridView по индексу, мы можем использовать свойство Rows и обратиться к нужной строке с помощью индекса, а затем указать индекс столбца. Например, если нам нужно получить значение ячейки в первом столбце второй строки, мы можем использовать следующий код:

  int rowIndex = 1; // индекс строки int columnIndex = 0; // индекс столбца object cellValue = dataGridView.Rows[rowIndex].Cells[columnIndex].Value; Console.WriteLine("Значение строки: " + cellValue); 

Пример 2: Получение значения строки по имени столбца

Если в DataGridView используются именованные столбцы, мы можем получить значение строки по имени столбца. Для этого нам понадобится использовать свойство Columns и обратиться к нужному столбцу по его имени. Например, если у нас есть столбец с именем «Name» и мы хотим получить значение ячейки в этом столбце для первой строки, мы можем использовать следующий код:

  string columnName = "Name"; // имя столбца int rowIndex = 0; // индекс строки object cellValue = dataGridView.Rows[rowIndex].Cells[columnName].Value; Console.WriteLine("Значение строки: " + cellValue); 

Пример 3: Использование события CellClick для получения значения строки

Мы также можем использовать событие CellClick для получения значения строки при щелчке на ячейке. В этом случае нам необходимо привязать обработчик события CellClick и использовать свойство CurrentRow для получения текущей строки. Например, мы можем использовать следующий код:

  private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) < int rowIndex = e.RowIndex; // индекс строки int columnIndex = 0; // индекс столбца object cellValue = dataGridView.Rows[rowIndex].Cells[columnIndex].Value; Console.WriteLine("Значение строки: " + cellValue); > 

Пример 4: Использование события SelectionChanged для получения значения строки

Еще одним способом получения значения строки в DataGridView является использование события SelectionChanged. Это событие вызывается, когда выбрана новая строка. Мы можем привязать обработчик события SelectionChanged и использовать свойство CurrentRow для получения текущей строки. Например, мы можем использовать следующий код:

  private void dataGridView_SelectionChanged(object sender, EventArgs e) < int rowIndex = dataGridView.CurrentRow.Index; // индекс текущей строки int columnIndex = 0; // индекс столбца object cellValue = dataGridView.Rows[rowIndex].Cells[columnIndex].Value; Console.WriteLine("Значение строки: " + cellValue); > 

В заключение

В этой статье мы рассмотрели несколько способов получения значения строки в DataGridView в C#. Мы рассмотрели получение значения по индексу и по имени столбца, а также использование событий CellClick и SelectionChanged. Надеюсь, эти примеры помогут вам в ваших проектах на C#.

Как получить значение ячейки в DataGridView в C#

DataGridView — это удобный и мощный элемент управления в Windows Forms, который позволяет отображать и редактировать данные в виде таблицы. Одной из основных задач при работе с DataGridView является получение значения ячейки. В этой статье рассмотрим несколько способов получения значения ячейки в DataGridView с использованием языка программирования C#.

Способ 1: Использование индексов столбца и строки

Первый способ заключается в использовании индексов столбца и строки для получения значения ячейки. В DataGridView каждая ячейка имеет свой индекс столбца и строки, и мы можем использовать эти индексы для получения значения.

int row = 0; // индекс строки int column = 0; // индекс столбца // Получение значения ячейки var value = dataGridView.Rows[row].Cells[column].Value; 

В приведенном выше примере мы используем свойство Rows, чтобы получить доступ к строке с нужным индексом, а затем используем свойство Cells для доступа к ячейке в этой строке. Затем мы используем свойство Value для получения значения ячейки.

Способ 2: Использование имени столбца и индекса строки

Второй способ заключается в использовании имени столбца и индекса строки для получения значения ячейки. В DataGridView каждая ячейка имеет свое имя столбца, и мы можем использовать это имя вместо индекса столбца для получения значения.

string columnName = "ColumnName"; // имя столбца int row = 0; // индекс строки // Получение значения ячейки var value = dataGridView.Rows[row].Cells[columnName].Value; 

В приведенном выше примере мы используем имя столбца вместо индекса столбца для доступа к ячейке. Затем мы используем свойство Value для получения значения ячейки.

Способ 3: Использование события CellClick

Третий способ заключается в использовании события CellClick для получения значения ячейки. Событие CellClick вызывается при щелчке пользователя на ячейке, и мы можем получить значение ячейки внутри этого события.

private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e) < int row = e.RowIndex; // индекс строки int column = e.ColumnIndex; // индекс столбца // Получение значения ячейки var value = dataGridView.Rows[row].Cells[column].Value; >

В приведенном выше примере мы используем свойства RowIndex и ColumnIndex объекта DataGridViewCellEventArgs для получения индексов строки и столбца. Затем мы используем эти индексы для доступа к ячейке и получения значения.

Способ 4: Использование итерации по ячейкам

Четвертый способ заключается в использовании итерации по всем ячейкам в DataGridView для получения значений. Мы можем использовать циклы для перебора всех строк и столбцов и получения значений ячеек.

foreach (DataGridViewRow row in dataGridView.Rows) < foreach (DataGridViewCell cell in row.Cells) < var value = cell.Value; // Дополнительная обработка значения ячейки >> 

В приведенном выше примере мы используем два вложенных цикла: первый цикл перебирает все строки в DataGridView, а второй цикл перебирает все ячейки в каждой строке. Затем мы можем получить значение каждой ячейки с помощью свойства Value и выполнить дополнительную обработку, если необходимо.

Заключение

В этой статье мы рассмотрели несколько способов получения значения ячейки в DataGridView с использованием языка программирования C#. Вы можете использовать любой из этих способов в зависимости от ваших потребностей и предпочтений. Удачи в работе с DataGridView!

Практическое руководство. Получение информации о выделенных пользователем ячейках, строках и столбцах элемента управления DataGridView в Windows Forms

Выбранные ячейки, строки или столбцы можно получить из элемента управления DataGridView с помощью соответствующих свойств: SelectedCells, SelectedRows и SelectedColumns. В следующих процедурах вы получите выбранные ячейки и отобразите их индексы строк и столбцов в строке MessageBox.

Получение выбранных ячеек в элементе управления DataGridView

  • Используйте свойство SelectedCells.

Примечание. Чтобы избежать отображения потенциально большого количества ячеек, используйте метод AreAllCellsSelected.

private void selectedCellsButton_Click(object sender, System.EventArgs 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"); > > > 
Private Sub selectedCellsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedCellsButton.Click Dim selectedCellCount As Integer = _ dataGridView1.GetCellCount(DataGridViewElementStates.Selected) If selectedCellCount > 0 Then If dataGridView1.AreAllCellsSelected(True) Then MessageBox.Show("All cells are selected", "Selected Cells") Else Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedCellCount - 1 sb.Append("Row: ") sb.Append(dataGridView1.SelectedCells(i).RowIndex _ .ToString()) sb.Append(", Column: ") sb.Append(dataGridView1.SelectedCells(i).ColumnIndex _ .ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedCellCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Cells") End If End If End Sub 

Получение выбранных строк в элементе управления DataGridView

  • Используйте свойство SelectedRows. Чтобы разрешить пользователям выбирать строки, необходимо задать свойству SelectionMode значение FullRowSelect или RowHeaderSelect.
private void selectedRowsButton_Click(object sender, System.EventArgs e) < Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); if (selectedRowCount >0) < System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedRowCount; i++) < sb.Append("Row: "); sb.Append(dataGridView1.SelectedRows[i].Index.ToString()); sb.Append(Environment.NewLine); >sb.Append("Total: " + selectedRowCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Rows"); > > 
Private Sub selectedRowsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedRowsButton.Click Dim selectedRowCount As Integer = _ dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected) If selectedRowCount > 0 Then Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedRowCount - 1 sb.Append("Row: ") sb.Append(dataGridView1.SelectedRows(i).Index.ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedRowCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Rows") End If End Sub 

Получение выбранных столбцов в элементе управления DataGridView

  • Используйте свойство SelectedColumns. Чтобы разрешить пользователям выбирать столбцы, необходимо задать свойству SelectionMode значение FullColumnSelect или ColumnHeaderSelect.
private void selectedColumnsButton_Click(object sender, System.EventArgs e) < Int32 selectedColumnCount = dataGridView1.Columns .GetColumnCount(DataGridViewElementStates.Selected); if (selectedColumnCount >0) < System.Text.StringBuilder sb = new System.Text.StringBuilder(); for (int i = 0; i < selectedColumnCount; i++) < sb.Append("Column: "); sb.Append(dataGridView1.SelectedColumns[i].Index .ToString()); sb.Append(Environment.NewLine); >sb.Append("Total: " + selectedColumnCount.ToString()); MessageBox.Show(sb.ToString(), "Selected Columns"); > > 
Private Sub selectedColumnsButton_Click( _ ByVal sender As Object, ByVal e As System.EventArgs) _ Handles selectedColumnsButton.Click Dim selectedColumnCount As Integer = dataGridView1.Columns _ .GetColumnCount(DataGridViewElementStates.Selected) If selectedColumnCount > 0 Then Dim sb As New System.Text.StringBuilder() Dim i As Integer For i = 0 To selectedColumnCount - 1 sb.Append("Column: ") sb.Append(dataGridView1.SelectedColumns(i).Index.ToString()) sb.Append(Environment.NewLine) Next i sb.Append("Total: " + selectedColumnCount.ToString()) MessageBox.Show(sb.ToString(), "Selected Columns") End If End Sub 

Компиляция кода

Для этого примера требуются:

  • элементы управления Button с именами selectedCellsButton , selectedRowsButton и selectedColumnsButton , каждый из которых имеет обработчики для присоединенного события Click;
  • элемент управления DataGridView с именем dataGridView1 ;
  • ссылки на сборки System, System.Windows.Forms и System.Text.

Отказоустойчивость

При выборе большого количества ячеек, строк или столбцов коллекции, описанные в этом разделе, работают неэффективно. Дополнительные сведения об использовании этих коллекций с большим объемом данных см. в статье Масштабирование элемента управления DataGridView Windows Forms.

См. также

  • DataGridView
  • SelectionMode
  • AreAllCellsSelected
  • SelectedCells
  • SelectedRows
  • SelectedColumns
  • Выделение данных и операции с буфером обмена в элементе управления DataGridView в Windows Forms

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Ввести координаты и получить значение ячейки DataGridView в C#

Есть таблица DataGridView с данными: например 6 столбцов и 4 строки. Хочу сделать так, чтобы можно было вручную ввести (в текстбоксы) координаты определённой ячейки, например строка 3, столбец 2 и вывести данные с этой ячейки в TextBox. Также нужно, чтобы это выполнялось независимо от того, выделена ли мышью какая-то ячейка в DataGridView. Как это будет выглядеть в коде?

Отслеживать
задан 15 окт 2018 в 22:23
29 3 3 бронзовых знака
вы как то сами пытались решить вашу задачу?
16 окт 2018 в 9:18
Чтобы получить ячейку укажите индексы в квадратных скобках: dataGridView[columnIndex, rowIndex] .
16 окт 2018 в 12:42
Кстати, что используете: WinForms, WPF или, может, у вас вообще веб-приложение?
16 окт 2018 в 12:43
tym32167, сам попробовал бы, но незнаю, какие свойства и методы для этого использовать.
17 окт 2018 в 13:20
Alexander Petrov, WinForms
17 окт 2018 в 13:21

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Не поняла вашего беспокойства по поводу SelectionChanged . Получение значения ячейки зависит только от указанных вами индексов строки и столбца.

Допустим, вам надо записать значение ячейки из таблицы dataGridView1 в label , тогда, учитывая, что вы заранее получили ранее введенные в textBox’ы индексы ячейки и столбца:

label1.Text = Convert.ToString(dataGridView1.Rows[row].Cells[cell].Value); 
label2.Text = Convert.ToString(dataGridView1[cell, row].Value); 

Ну и, конечно, если не знаете методов и свойств, не стесняйтесь заглядывать в MSDN:

  1. Про DataGridView
  2. Про работу со строками и столбцами

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *