Vb.net Datagridview首次在tabpage中不显示数据
我在tabpage2中有一个datagridview,我有一个搜索按钮tabpage1来填充datagridview。当我搜索并单击显示空行的tabpage2 datagridview时,我返回到tabpage1并再次单击搜索,然后转到显示数据的tabpage2 datagridview,为什么会发生这种情况Vb.net Datagridview首次在tabpage中不显示数据,vb.net,datagridview,tabcontrol,tabpage,Vb.net,Datagridview,Tabcontrol,Tabpage,我在tabpage2中有一个datagridview,我有一个搜索按钮tabpage1来填充datagridview。当我搜索并单击显示空行的tabpage2 datagridview时,我返回到tabpage1并再次单击搜索,然后转到显示数据的tabpage2 datagridview,为什么会发生这种情况 Dim daPA As New OracleDataAdapter Dim dtPA As New DataTable() Dim cmd As New OracleCommand("s
Dim daPA As New OracleDataAdapter
Dim dtPA As New DataTable()
Dim cmd As New OracleCommand("select * from POLICY_SUBAGENT_DETAIL where POLICY_REFER =:Vno", sgcnn)
cmd.Parameters.Add("@Vno", OracleDbType.NVarchar2).Value = TxtPolicyRefer.Text.ToString.Trim
dtPA.Clear()
daPA = New OracleDataAdapter(cmd)
daPA.Fill(dtPA)
DgvSubAgent.AutoGenerateColumns = False
DgvSubAgent.DataSource = dtPA
If dtPA.Rows.Count > 0 Then
For i As Integer = 0 To dtPA.Rows.Count - 1
DgvSubAgent.Rows(i).Cells(0).Value = dtPA.Rows(i).Item("SUBAGENT_NAME").ToString.Trim
'DgvSubAgent.Rows(i).Cells(1).Value = dtPA.Rows(i).Item("BUSINESS_SHARE").ToString.Trim
'DgvSubAgent.Rows(i).Cells(2).Value = dtPA.Rows(i).Item("COMM_P").ToString.Trim
DgvSubAgent.Rows(i).Cells(1).Value = dtPA.Rows(i).Item("COMM_VALUE").ToString
Next
End If
执行
TabControl
时,在选择TabPage
之前,不会创建每个TabPage
上的控件。如果在填充网格之前选择包含该网格的选项卡,则会发现它将按预期工作。您可以在代码中实现这一点,只需在已有代码的上方添加一行即可。如果您不想选择选项卡,那么我可以想象有一种方法可以强制在TabPage
上创建控件。我必须测试以确定,但我希望在选项卡页面上调用CreateControl
就可以了。我使用了一个技巧,在填充datagridview之前添加一行TabControl1.SelectedIndex=1
比如:
TabControl1.SelectedIndex = 1 ' where datagridview control placed,
DgvSubAgent.DataSource = dtPA
然后在end sub
之前,添加一行TabControl1.SelectedIndex=0
——where search按钮