Vb.net 在WinForms上显示DataGridView

Vb.net 在WinForms上显示DataGridView,vb.net,datagridview,Vb.net,Datagridview,我在表单上有几个带有“FullRowSelection”的DataGridView,因此我(和用户一样)必须知道哪个DGV有焦点(如果有的话) 为此,我在每个DGV(或子类)的_GotFocus和_LostFocus处理程序下更改选定行背景的颜色 这样,当DGV获得焦点时,选定行为典型的蓝色,当DGV失去焦点时,选定行变为灰色。这项工作还可以,但存在一个问题 加载表单时,所有DGV都选择了蓝色行,无论它们是否没有焦点 如何进入显示的没有焦点的DGV显示为灰色选中行的情况?在加载事件时设置焦点:我

我在表单上有几个带有“FullRowSelection”的DataGridView,因此我(和用户一样)必须知道哪个DGV有焦点(如果有的话)

为此,我在每个DGV(或子类)的_GotFocus和_LostFocus处理程序下更改选定行背景的颜色

这样,当DGV获得焦点时,选定行为典型的蓝色,当DGV失去焦点时,选定行变为灰色。这项工作还可以,但存在一个问题

加载表单时,所有DGV都选择了蓝色行,无论它们是否没有焦点


如何进入显示的没有焦点的DGV显示为灰色选中行的情况?

在加载事件时设置焦点:我可以将焦点设置为一个DGV,但其他DGV如何?在给定时刻只有一个控件可以有焦点。这意味着您不理解问题。加载表单时,我所有的DGV都有蓝色的选定线,没有人有焦点,所以我希望它们都显示为灰色的选定行。实际上,我可以在表单的“U加载”中将焦点逐个设置为每个DGV,最后设置为所需的控件,然后DGV的外观是预期的,但即使在DGV的子类中,我也会搜索执行此操作的初始方法。
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