【发布时间】:2013-09-21 09:33:35
【问题描述】:
我尝试过MyDataGridView.Rows[index].Selected = true;,但这标记了所有行。
我想要的是在垂直滚动条的情况下我想看到最后一行而不需要手动操作
这不起作用,因为像 Selected property 它标记了所有行:
int last = DataGridView.Rows.Count;
last = DataGridView.FirstDisplayedScrollingRowIndex;
这是我的添加项目功能:
private void AddToDataGridView(MyObject obj)
{
this.Invoke((MethodInvoker)delegate
{
int index = dataGridView.Rows.Add(
obj.machineIpAddress,
obj.fileSize,
obj.fileName,
obj.processId,
DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"),
"Start...");
dataGridView.Rows[index].Cells[5].Style.BackColor = Color.SkyBlue;
ColorRow(index, obj.fileSize);
dataGridView.CurrentCell.Selected = false;
var lastRow = dataGridView.Rows[dataGridView.Rows.Count - 1];
lastRow.Selected = true;
dataGridView.FirstDisplayedCell = lastRow.Cells[0];
});
}
此函数聚焦最后一行,但选中了 DataGridView 中的所有行
【问题讨论】:
-
如果您打算将最后一行滚动到 datagridview 的可见部分,请使用 FirstDisplayedScrollingRowIndex 属性并将最后一行的索引分配给它。
-
再次标记所有行,而不仅仅是最后一行
-
当您在问题中使用编辑后的代码时,您就搞错了。任务应该是相反的。如果您标记了行,那么这来自此处未显示的不同代码。
标签: c# winforms datagridview