0

vb.net でフォーム ウィンドウのサイズを自動調整して、幅を 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

グリッドビューを含むメインフォームのことですか?

Me.Height = heightVal
Me.Width = widthVal

グリッドビューのサイズの変化に応じて、上記の 2 つのプロパティを使用してメイン フォームのサイズを調整できます。これにより、フォームの場所が変更されるため、実行時にも変更する必要があることに注意してください ( 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

また、フォームの右側と下部の両方に「ギャップ」を含めています。このコード (またはこれらの行の何か) は、実行時に高さ/幅の値が問題なく更新されることを確認するのに十分なはずです (グリッドビューは常にフォーム内に適切に配置されます)。最後に、datagridview のサイズが列/行のサイズと一致する必要がないことに注意してください。間違ったサイズ変更を避けるために、すべての行の合計幅が datagridview の幅とすべての列の合計高さがその高さと一致することも確認する必要があります。


于 2013-06-27T08:36:38.667 に答える