以下是我的应用程序的一些背景知识:
到目前为止一切顺利。不过这是我的问题。
动态加载的大多数用户控件都有一个DataGridView,它应该在初始化控件时获得焦点。有时这个网格直接在UserControl表面上;有时它在GroupBox中;等
以编程方式设置焦点在DataGridView控件上的最佳方法是什么,因为它可能放在可变数量的控件容器中?我已经尝试了明显的 - 。选择,.Focus,.ActiveControl,等等这些都不似乎工作 - 这是我选择的TreeView项仍然突出,即使一条记录在DataGridView选择,它不有重点。
任何想法都会受到赞赏。
编辑:以下代码
以下是我在主窗体中添加用户控件的代码:
Private Sub LoadRightPanel(ByVal section As String, ByVal moduleName As String)
Heading.Text = String.Empty
SuspendLayout()
RightPanel.Controls.Clear()
Select Case section.Trim.ToLower
Case "effective date types"
Heading.Text = "Effective Date Types"
RightPanel.Controls.Add(New EffectiveDateTypeAddEditControl(moduleName))
.
.
.
End Select
With RightPanel.Controls(0)
.Dock = DockStyle.Fill
End With
ResumeLayout()
End Sub
这就是我尝试在用户控件构造函数中设置焦点的地方:
Public Sub New(ByVal programModule As String)
InitializeComponent()
currentModule = programModule
UpdateGrid()
UpdateButtonSettings()
ValueGrid.Select()
End Sub
答案 0 :(得分:0)
如果您尝试将焦点设置为DataGridView
,请确保将焦点专门设置为View
,而不是整个DataGrid
。只要控件可见,将焦点设置到它们就不会有问题。