希望在另一个按代码创建的选项卡上引用数据网格视图。
我想使用当前所选标签中的数据网格视图的列填充组合框。现在我只能用组合框填充用户加载的最后一个文件,而不是选择w / e选项卡。
Dim mstrFirstFile As String = ""
Dim mstrFileName As String = ""
Dim mdstTableInput As New DataSet
Dim mintCounter As Integer
Dim mdgvTab As DataGridView
Public Function CreateNewDGVInsideNewPageTab() As DataGridView
Dim tbpNewTab As New TabPage()
tbpNewTab.Text = mstrFileName
Dim mdgvTabControl As New DataGridView
mdgvTabControl.Dock = DockStyle.Fill
mdgvTabControl.Name = ("Grid" + ToString(mintCounter))
tbpNewTab.Controls.Add(mdgvTabControl)
tbcsource.TabPages.Add(tbpNewTab)
tbcsource.SelectedTab = tbpNewTab
Return mdgvTabControl
End Function
Private Sub generate()
Dim objCLSConverter As New DataTier.clsCSVConverter
Dim strNewXMLPath As String = ""
Dim xmlFile As XmlReader
If mstrFirstFile.Length > 1 Then
strNewXMLPath = objCLSConverter.writeXML(mstrFirstFile)
xmlFile = XmlReader.Create(strNewXMLPath, New XmlReaderSettings())
Dim dsTemp As DataSet = New DataSet
Dim dtTable As DataTable = Nothing
dsTemp.ReadXml(xmlFile)
dtTable = dsTemp.Tables(0).Copy
dtTable.TableName = mintCounter
mdstTableInput.Tables.Add(dtTable)
mdgvTab = CreateNewDGVInsideNewPageTab()
mdgvTab.DataSource = mdstTableInput.Tables(mintCounter)
mintCounter = (mintCounter + 1)
cbxColumnsUpdate()
xmlFile.Close()
End If
End Sub
任何帮助或如果您需要更多我的代码,请告诉我。
程序接受用户添加的任何.csv或.xls文件并将其投入数据集。它将这些文件添加到新生成的代码选项卡中,其中包含一个数据网格视图,其中包含加载到其中的文件。
选择选项卡后,将使用该选项卡数据网格视图的所有列名填充组合框,您可以选择任何选项卡,它将重新填充该选项卡的组合框。然后,您可以从组合框中选择列名称,然后在文本框中输入您在该列中搜索的w / e,它只是一个select where子句。
然后,这些数据将被丢弃到下面的数据网格视图中,供用户查看和导出到Excel或继续更改。这一切都用于一般报告和数据按摩。
现在问题是组合框不会根据所选的选项卡重新填充。
答案 0 :(得分:0)
只是一个选项 - 转换它:
Dim mdgvTab As DataGridView
到字典:
Dim mdgvTabDictionary As Dictionary(Of Integer, DataGridView)
然后,在Sub generate()
内你替换它:
mdgvTab = CreateNewDGVInsideNewPageTab()
到此:
Dim mdgvTab As DataGridView = CreateNewDGVInsideNewPageTab()
mdgvTabDictionary.Add(mintCounter, mdgvTab)
现在您不需要处理控件层次结构并按名称查找控件。相反,您可以通过索引找到所需的DataGridView
:mdgvTabDictionary(index)
。
不要忘记在mdgvTabDictionary
,Sub New
(或任何其他适合您情况的地方)初始化Form_Load
:
mdgvTabDictionary = New Dictionary(Of Integer, DataGridView)