Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net Can';当有更多列添加到DataGridView时,在TabControl页上刷新DataGridView_Vb.net_Visual Studio 2010_Datagridview_Tabcontrol - Fatal编程技术网

Vb.net Can';当有更多列添加到DataGridView时,在TabControl页上刷新DataGridView

Vb.net Can';当有更多列添加到DataGridView时,在TabControl页上刷新DataGridView,vb.net,visual-studio-2010,datagridview,tabcontrol,Vb.net,Visual Studio 2010,Datagridview,Tabcontrol,动态生成DataGridView,并将TabControl指定为父控件。DataGridView由随机数填充。虽然标题或单元格值没有问题,但当动态添加更多列时,我似乎无法调整选项卡控件页上DataGridView的大小 TabControl的父作用域是否存在问题,一旦刷新所有内容,就会阻止在TabControl上重新生成和显示更多列 Dim datagridview1 As New DataGridView Datagridview1.AutoResizeRowHeadersWidth(Data

动态生成DataGridView,并将TabControl指定为父控件。DataGridView由随机数填充。虽然标题或单元格值没有问题,但当动态添加更多列时,我似乎无法调整选项卡控件页上DataGridView的大小

TabControl的父作用域是否存在问题,一旦刷新所有内容,就会阻止在TabControl上重新生成和显示更多列

Dim datagridview1 As New DataGridView
Datagridview1.AutoResizeRowHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)

Dim dgvColumnHeaderStyle As New DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
Datagridview1.ColumnHeadersDefaultCellStyle = dgvColumnHeaderStyle
Datagridview1.AllowUserToAddRows = False
Datagridview1.ScrollBars = ScrollBars.Both
DataGridView1.Font = New System.Drawing.Font("Lucida Sans Typewriter", 8)


For j As Integer = 1 To UBound(columnheaders)
  DataGridView1.Columns.Add(columnheaders(j), columnheaders(j))
Next
For j As Integer = 1 To UBound(columnheaders)
  DataGridView1.Columns(columnheaders(j)).HeaderText = columnheaders(j)
Next
For i As Integer = 0 To UBound(rowheaders) - 1
  Dim n As Integer = DataGridView1.Rows.Add()
  For j = 0 To UBound(columnheaders) - 1
    DataGridView1.Rows.Item(n).Cells(j).Value = Rnd()
    If i Mod 2 = 0 Then DataGridView1.Rows.Item(i).Cells(j).Style.BackColor = Color.White
    If i Mod 2 <> 0 Then DataGridView1.Rows.Item(i).Cells(j).Style.BackColor = Color.AliceBlue
  Next
Next

Datagridview1.Visible = True
Datagridview1.Height = Me.Height - 100
Datagridview1.Width = Me.Width - TabControl2.Left - 100
Datagridview1.Parent = TabControl2.TabPages(1)
TabControl2.TabPages(1).Refresh()
TabControl2.Refresh()
Datagridview1.Refresh()
Dim DataGridView 1作为新的DataGridView
Datagridview1.AutoResizeToAllHeadersWidth(DataGridViewRowHeadersWidthSizeMode.AutoSizeToAllHeaders)
Dim dgvColumnHeaderStyle作为新的DataGridViewCellStyle()
dgvColumnHeaderStyle.Alignment=DataGridViewContentAlignment.MiddleCenter
Datagridview1.ColumnHeadersDefaultCellStyle=dgvColumnHeaderStyle
Datagridview1.AllowUserToAddress=False
Datagridview1.ScrollBars=滚动条。两者都是
DataGridView1.Font=新系统.Drawing.Font(“Lucida Sans打字机”,8)
对于j,整数=1到UBound(列标题)
DataGridView1.Columns.Add(columnheaders(j)、columnheaders(j))
下一个
对于j,整数=1到UBound(列标题)
DataGridView1.Columns(columnheaders(j)).HeaderText=columnheaders(j)
下一个
对于i作为整数=0到UBound(行标题)-1
Dim n As Integer=DataGridView1.Rows.Add()
对于j=0到UBound(列标题)-1
DataGridView1.Rows.Item(n).Cells(j).Value=Rnd()
如果i Mod 2=0,则DataGridView1.Rows.Item(i).Cells(j).Style.BackColor=Color.White
如果i Mod 2 0,则DataGridView1.Rows.Item(i).Cells(j).Style.BackColor=Color.AliceBlue
下一个
下一个
Datagridview1.Visible=True
Datagridview1.Height=Me.Height-100
Datagridview1.Width=Me.Width-TabControl2.Left-100
Datagridview1.Parent=TabControl2.TabPages(1)
TabControl2.TabPages(1.Refresh())
TabControl2.Refresh()
Datagridview1.Refresh()

已解决:结果是,无论何时通过编程将datagridview添加到tabcontrol,如果您更新(重新创建)datagridview并希望在同一tabcontrol页面上看到新的datagridviw,您都必须清除tab页面上的控件。下面给出了使用TabControl1控件和第0页(即第一个选项卡)的示例:

Me.TabControl1.SelectedTab = TabControl2.TabPages.Item(0)
Me.TabControl1.TabPages(0).Controls.Clear()
Me.TabControl1.TabPages(0).Controls.Add(datagridview1)