我在Form上有几个带有“FullRowSelection”的DataGridViews,因此我(像用户一样)必须知道哪个DGV有焦点(如果有的话)。
为此,我为每个DGV(或子类)中的_GotFocus和_LostFocus处理程序更改所选行背景的颜色。
Private Sub DataGridView1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.GotFocus
DataGridView1.RowsDefaultCellStyle.SelectionBackColor = Color.FromKnownColor(KnownColor.Highlight)
End Sub
Private Sub DataGridView1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles DataGridView1.LostFocus
DataGridView1.RowsDefaultCellStyle.SelectionBackColor = Color.DarkGray
End Sub
这样,当DGV获得焦点时,选择的行是典型的蓝色,当DGV失去焦点时,选择的行为灰色。这项工作没问题,但存在一个问题。
当加载表单时,无论是否有焦点,所有DGV都有蓝色选择行。
如何进入显示没有焦点的DGV出现灰色选择行的情况?