MyTetra Share
Делитесь знаниями!
Свойство DataGridView.Rows
31.07.2019
22:37
Текстовые метки: DataGridView.Rows
Раздел: !Закладки - VBA

Свойство DataGridView.Rows

.NET Framework (current version)
 

Опубликовано: Октябрь 2016

Получает коллекцию, содержащую все строки в элементе управления DataGridView.

Пространство имен:   System.Windows.Forms
Сборка:  System.Windows.Forms (в System.Windows.Forms.dll)

<BrowsableAttribute(False)>

Public ReadOnly Property Rows As DataGridViewRowCollection



Значение свойства

Type: System.Windows.Forms.DataGridViewRowCollection

Объект DataGridViewRowCollection, содержащий все строки в элементе управления DataGridView.

Можно использовать Rows коллекцию для заполнения вручную DataGridView элемента управления вместо привязки к источнику данных. Следующий пример показывает, как вручную добавлять и вставлять строки. Предполагается, что вы добавили четыре DataGridViewTextBoxColumn экземпляров элемента управления Columns коллекции.

[Visual Basic]

Me.dataGridView1.Rows.Add("five", "six", "seven", "eight")

Me.dataGridView1.Rows.Insert(0, "one", "two", "three", "four")



[C#]

this.dataGridView1.Rows.Add("five", "six", "seven", "eight");this.dataGridView1.Rows.Insert(0, "one", "two", "three", "four");



Подробный пример, программным образом заполняет несвязанного DataGridView управления, см.

Строки содержат сведения о стиле, помимо значения ячеек. По этой причине может потребоваться добавить или вставить строки на основе существующих строк, которые уже определен. Это можно сделать с помощью AddCopy, AddCopies, InsertCopy, и InsertCopies методы.

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

В следующем примере показано, как программно изменить значения ячеек.

[Visual Basic]

' Modify the value in the first cell of the second row.

Me.dataGridView1.Rows[1].Cells[0].Value = "new value"


' The previous line is equivalent to the following line.

Me.dataGridView1[0, 1].Value = "new value"



[C#]

// Modify the value in the first cell of the second row.

this.dataGridView1.Rows[1].Cells[0].Value = "new value";


// The previous line is equivalent to the following line.

this.dataGridView1[0, 1].Value = "new value";



Кроме возможностей стандартной коллекции, можно использовать Rows коллекции для получения сведений о строках. Используйте GetRowState метод для определения состояния определенной строки. Используйте GetRowCount и GetRowsHeight методов, чтобы определить количество строк или объединенную высоту строк в определенном состоянии. Чтобы получить индекс строки в определенном состоянии, используйте GetFirstRow, GetLastRow, GetNextRow, и GetPreviousRow методы.

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

[Visual Basic]

Dim rowToDelete As Int32 = Me.dataGridView1.Rows.GetFirstRow( _

DataGridViewElementStates.Selected)

If rowToDelete > -1 Then

Me.dataGridView1.Rows.RemoveAt(rowToDelete)

End If



[C#]

Int32 rowToDelete = this.dataGridView1.Rows.GetFirstRow(

DataGridViewElementStates.Selected);

if (rowToDelete > -1)

{

this.dataGridView1.Rows.RemoveAt(rowToDelete);

}



Для повышения производительности, DataGridViewRowCollection возвращенный Rows свойство может включать строки общие и частные. Общие строки совместно используют память, чтобы снизить затраты на обработку большого набора записей. Если набор записей очень велик, следует учитывать Сохранить как можно больше общих строк при доступе к Rows свойство.

Для получения дополнительной информации см. Масштабирование элемента управления DataGridView в Windows Forms.

В следующем примере кода демонстрируется создание несвязанного DataGridView; Задайте ColumnHeadersVisible, ColumnHeadersDefaultCellStyle, и ColumnCount его свойства и использование Rows и Columns Свойства. Также демонстрируется использование версии AutoResizeColumnHeadersHeight и AutoResizeRows методов, чтобы правильно задать размер заголовков столбцов и строк. Чтобы выполнить этот пример, вставьте следующий код в форму, содержащую DataGridView с именем dataGridView1 и кнопку с именем Button1, и затем вызвать InitializeDataGridView метод из конструктора формы или Load обработчика событий. Убедитесь, что все события подключены к своим обработчикам событий.

Private Sub InitializeDataGridView()


' Create an unbound DataGridView by declaring a column count.

dataGridView1.ColumnCount = 4

dataGridView1.ColumnHeadersVisible = True


' Set the column header style.

Dim columnHeaderStyle As New DataGridViewCellStyle()


columnHeaderStyle.BackColor = Color.Beige

columnHeaderStyle.Font = New Font("Verdana", 10, FontStyle.Bold)

dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle


' Set the column header names.

dataGridView1.Columns(0).Name = "Recipe"

dataGridView1.Columns(1).Name = "Category"

dataGridView1.Columns(2).Name = "Main Ingredients"

dataGridView1.Columns(3).Name = "Rating"


' Populate the rows.

Dim row1() As String = {"Meatloaf", "Main Dish", "ground beef", "**"}

Dim row2() As String = _

{"Key Lime Pie", "Dessert", "lime juice, evaporated milk", "****"}

Dim row3() As String = {"Orange-Salsa Pork Chops", "Main Dish", _

"pork chops, salsa, orange juice", "****"}

Dim row4() As String = {"Black Bean and Rice Salad", "Salad", _

"black beans, brown rice", "****"}

Dim row5() As String = _

{"Chocolate Cheesecake", "Dessert", "cream cheese", "***"}

Dim row6() As String = _

{"Black Bean Dip", "Appetizer", "black beans, sour cream", "***"}

Dim rows() As Object = {row1, row2, row3, row4, row5, row6}


Dim rowArray As String()

For Each rowArray In rows

dataGridView1.Rows.Add(rowArray)

Next rowArray


End Sub


Private Sub button1_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles button1.Click


' Resize the height of the column headers.

dataGridView1.AutoResizeColumnHeadersHeight()


' Resize all the row heights to fit the contents of all

' non-header cells.

dataGridView1.AutoResizeRows( _

DataGridViewAutoSizeRowsMode.AllCellsExceptHeaders)


End Sub


Private Sub InitializeContextMenu()


' Create the menu item.

Dim getRecipe As New ToolStripMenuItem( _

"Search for recipe", Nothing, AddressOf ShortcutMenuClick)


' Add the menu item to the shortcut menu.

Dim recipeMenu As New ContextMenuStrip()

recipeMenu.Items.Add(getRecipe)


' Set the shortcut menu for the first column.

dataGridView1.Columns(0).ContextMenuStrip = recipeMenu


End Sub


Private clickedCell As DataGridViewCell


Private Sub dataGridView1_MouseDown(ByVal sender As Object, _

ByVal e As MouseEventArgs) Handles dataGridView1.MouseDown


' If the user right-clicks a cell, store it for use by the

' shortcut menu.

If e.Button = MouseButtons.Right Then

Dim hit As DataGridView.HitTestInfo = _

dataGridView1.HitTest(e.X, e.Y)

If hit.Type = DataGridViewHitTestType.Cell Then

clickedCell = _

dataGridView1.Rows(hit.RowIndex).Cells(hit.ColumnIndex)

End If

End If


End Sub


Private Sub ShortcutMenuClick(ByVal sender As Object, _

ByVal e As System.EventArgs)


If (clickedCell IsNot Nothing) Then

'Retrieve the recipe name.

Dim recipeName As String = CStr(clickedCell.Value)


'Search for the recipe.

System.Diagnostics.Process.Start( _

"http://search.msn.com/results.aspx?q=" + recipeName)

End If


End Sub



.NET Framework
Доступно с 2.0

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования