是否可以在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
谢谢,
答案 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的宽度匹配,并确保所有列的总高度与其高度相同