0

是否可以在 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 

谢谢,

4

1 回答 1

0

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

Me.Height = heightVal
Me.Width = widthVal

根据gridview大小的变化,你可以使用上面的两个属性来调整主窗体的大小。请记住,这将引发要更改的表单的位置,因此您还应该在运行时影响它(Me.Left& 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 的宽度和所有列的总高度匹配


于 2013-06-27T08:36:38.667 回答