Antworten:
Nicht getestet, aber ich denke, Sie können Folgendes tun:
dataGrid.Rows[index].Selected = true;
oder Sie könnten Folgendes tun (aber noch einmal: nicht getestet):
dataGrid.SelectedRows.Clear();
foreach(DataGridViewRow row in dataGrid.Rows)
{
if(YOUR CONDITION)
row.Selected = true;
}
SelectedRows.Clear()
nur die ausgewählten Zeilen gelöscht, aber mit ClearSelection()
auch den Spalten => Spaltenauswahlen verloren ...
dataGrid.CurrentCell = dataGrid.Rows[row.Index].Cells[0];
Führen Sie dies in Visual Basic aus, um eine Zeile in a auszuwählen DataGridView
. Die ausgewählte Zeile wird mit einer hervorgehobenen Farbe angezeigt. Beachten Sie jedoch, dass sich die Cursorposition nicht ändert:
Grid.Rows(0).Selected = True
Ändern Sie dazu die Position des Cursors:
Grid.CurrentCell = Grid.Rows(0).Cells(0)
Durch Kombinieren der obigen Zeilen wird der Cursor positioniert und eine Zeile ausgewählt. Dies ist das Standardverfahren zum Fokussieren und Auswählen einer Zeile in a DataGridView
:
Grid.CurrentCell = Grid.Rows(0).Cells(0)
Grid.Rows(0).Selected = True
DataGridView.Rows
.OfType<DataGridViewRow>()
.Where(x => (int)x.Cells["Id"].Value == pId)
.ToArray<DataGridViewRow>()[0]
.Selected = true;
<GridViewName>.ClearSelection(); ----------------------------------------------------1
foreach(var item in itemList) -------------------------------------------------------2
{
rowHandle =<GridViewName>.LocateByValue("UniqueProperty_Name", item.unique_id );--3
if (rowHandle != GridControl.InvalidRowHandle)------------------------------------4
{
<GridViewName>.SelectRow(rowHandle);------------------------------------ -----5
}
}
Dabei ist itemList eine Liste der Zeilen, die in der Rasteransicht ausgewählt werden sollen.
Versuche dies:
datagridview.Rows[currentRow].Cells[0];
datagridview.Rows[currentRow].Cells[0]
Ruft ... die Zelle an der angegebenen Indexposition ab. Wie wählt dies einen bestimmten Zeilenbereich aus, wie in der Frage gefordert?
Sie können die Select-Methode verwenden, wenn Sie über eine Datenquelle verfügen: http://msdn.microsoft.com/en-us/library/b51xae2y%28v=vs.71%29.aspx
Oder verwenden Sie linq, wenn Ihre Datenquelle Objekte enthält
Wenn Sie zum Zeitpunkt des Ladens eine ausgewählte Zeile einer DataGridView festlegen, sollten Sie dies im DataBindingComplete-Ereignis behandeln, da diese standardmäßig überschrieben werden kann.
read-only
- dannSelectedRows.Clear()
funktioniert es nicht.