.net 结合使用TabControl和DataGridView控件
我不确定这是否可能?需要建议吗 我想将2个不同文件夹中的文件名显示到2个不同的DataGridview控件中,这些控件位于TabControl1的2个选项卡页中。这是我尝试过的代码。通过运行此代码,我可以将文件夹中的文件名显示在Tabpage1的DataGridView1上,但不能显示在tabpage2的DataGridView2上.net 结合使用TabControl和DataGridView控件,.net,vb.net,.net,Vb.net,我不确定这是否可能?需要建议吗 我想将2个不同文件夹中的文件名显示到2个不同的DataGridview控件中,这些控件位于TabControl1的2个选项卡页中。这是我尝试过的代码。通过运行此代码,我可以将文件夹中的文件名显示在Tabpage1的DataGridView1上,但不能显示在tabpage2的DataGridView2上 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
With DataGridView1
.Columns.Add("Column 0", "TaskName")
.AutoResizeColumns()
End With
With DataGridView2
.Columns.Add("Column 0", "TaskName")
.AutoResizeColumns()
End With
Dim rowint As Integer = 0
Dim name As String
Dim directoryInfo As New System.IO.DirectoryInfo("C:\Demo\Sample1")
Dim fileInfo = System.IO.Directory.GetFiles(directoryInfo.ToString)
For Each name In fileInfo
DataGridView1.Rows.Add()
Dim filename As String = System.IO.Path.GetFileName(name)
DataGridView1.Item(0, rowint).Value = filename
rowint = rowint + 1
Next
End Sub
Private Sub TabControl1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TabControl1.Click
If (TabControl1.SelectedTab.Name.ToString) = "TabPage2" Then
MessageBox.Show(TabControl1.SelectedTab.Name.ToString)
Dim rowint As Integer = 0
Dim name As String
Dim directoryInfo As New System.IO.DirectoryInfo("C:\Demo\Sample2")
Dim fileInfo = System.IO.Directory.GetFiles(directoryInfo.ToString)
For Each name In fileInfo
DataGridView2.Rows.Add()
Dim filename As String = System.IO.Path.GetFileName(name)
DataGridView1.Item(0, rowint).Value = filename
rowint = rowint + 1
Next
End If
End Sub
这是您的代码(参考行号):
您的错误来自第4行,该行引用了错误的DataGridView控件。应该是:
4) DataGridView2.Item(0, rowint).Value = filename
在代码中,每次单击第二个选项卡时,都需要清除DataGridView2,否则数据网格将开始扩展,并出现额外的空行
不确定在TabControl1 Click事件中包含此代码是否有意义--您可能希望将此代码移动到加载事件中,就像处理第一个数据网格一样。正如您所建议的,我将整个代码移动到加载事件中。但问题是,当我单击tabpage1或tabpage2时,空白行正在添加到网格中。如何避免添加这些空行?@Ram听起来您仍在使用tabcontrol click事件中的“.rows.Add()”。您能告诉我如何将现有网格变为空吗?我不知道您的代码目前是什么样子。如果将代码从tabcontrol click事件移动到load事件,那么tabcontrol click事件中现在发生了什么?需要查看更多代码,否则,请使用DataGridView2.Rows.Clear()
4) DataGridView2.Item(0, rowint).Value = filename