自动调整窗口以适合datagradview vb.net

时间:2013-06-27 08:33:14

标签: vb.net

是否可以在vb.net中自动调整表单窗口以将其宽度更改为datagridview宽度?

我一直在寻找一段时间,但只能找到如何调整datagridview本身的大小。

这是准备Datagridview的代码

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
   Dim rowvalue As String Dim cellvalue(20) As String 
   Dim streamReader As IO.StreamReader = New IO.StreamReader("test.csv") 

   While streamReader.Peek() <> -1 
     rowValue = streamReader.ReadLine() 
     cellvalue = rowvalue.Split(","c) 
     DataGridView1.Rows.Add(cellValue) 
   End While 

   streamReader.Close() 
 End Sub 

谢谢,

1 个答案:

答案 0 :(得分:0)

您的意思是包含gridview的主窗体?

Me.Height = heightVal
Me.Width = widthVal

根据gridview大小的变化,您可以使用上面的两个属性来调整主窗体的大小。请记住,这会激发要更改的表单的位置,因此您还必须在运行时(Me.Left&amp; Me.Top)对其进行影响。

如果它不是主要表单,则应将Me替换为给定对象(例如Panel1)。

-----------------示例

    Dim rightGap As Double = 10
    Dim bottomGap As Double = 10
    If (DataGridView1.Location.X + DataGridView1.Width > Me.Width + rightGap) Then
        Me.Width = 2 * Me.Width - (DataGridView1.Location.X + DataGridView1.Width) + rightGap
    End If
    If (DataGridView1.Location.Y + DataGridView1.Height > Me.Height + bottomGap) Then
        Me.Height = 2 * Me.Height - (DataGridView1.Location.Y + DataGridView1.Height) + bottomGap
    End If

我还在表格的右侧和底部都包含“空白”。此代码(或这些行上的某些内容)应该足以确保在运行时更新高度/宽度值而没有任何问题(gridview总是正确地位于表单内)。 最后,您应该记住,datagridview的大小不必与列/行之一匹配。为了避免错误的大小调整,您还必须确保所有行的总宽度与datagridview的宽度匹配,并确保所有列的总高度与其高度相同