Windows Form GridView Problems

Hello
I try to create Windows form to view data in GridView but i have two problems;
first: i don’t know why there is an empty row at the bottom?
second: the window size is fixed to (300,300)

What i get:

image

What i want:

image

import Grasshopper
import System
import clr
clr.AddReference('System.Windows.Forms')
clr.AddReference('System.Data')
from System.Windows.Forms import *
from System.Data import *

class dataTable(Form):
    
    def __init__(self):

        self.table = DataTable()
        
        # add columns to datatable
        self.table.Columns.Add("Id")
        self.table.Columns.Add("First Name")
        self.table.Columns.Add("Last Name")
        self.table.Columns.Add("Age")
        
        # add rows to datatable
        self.table.Rows.Add(1, "First A", "Last A", 10)
        self.table.Rows.Add(2, "First B", "Last B", 20)
        self.table.Rows.Add(3, "First C", "Last C", 30)
        self.table.Rows.Add(4, "First D", "Last D", 40)
        self.table.Rows.Add(5, "First E", "Last E", 50)
        self.table.Rows.Add(6, "First A", "Last A", 10)
        self.table.Rows.Add(7, "First B", "Last B", 20)
        self.table.Rows.Add(8, "First C", "Last C", 30)
        self.table.Rows.Add(9, "First D", "Last D", 40)
        self.table.Rows.Add(10, "First E", "Last E", 50)
        self.table.Rows.Add(11, "First B", "Last B", 20)
        self.table.Rows.Add(12, "First C", "Last C", 30)
        self.table.Rows.Add(13, "First D", "Last D", 40)
        self.table.Rows.Add(14, "First E", "Last E", 50)

        # gridView
        self.dataGridView = DataGridView()
        self.dataGridView.Dock = DockStyle.Fill
        self.dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
        self.dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells
        self.dataGridView.ScrollBars = ScrollBars.None
        self.dataGridView.DataSource = self.table
        self.dataGridView.Parent = self
        self.dataGridView.AllowUserToResizeColumns = False
        self.dataGridView.AllowUserToResizeRows = False
        self.dataGridView.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        self.dataGridView.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        self.dataGridView.BackgroundColor = System.Drawing.SystemColors.Control
        self.dataGridView.RowHeadersVisible = False
        
        # window
        self.MaximizeBox = False
        self.MinimizeBox = False
        self.Padding = Padding(15)
        #self.Dock = DockStyle.Fill
        self.CenterToScreen()
        
if Run:
    if 'form' in globals():
        form.Close()
    form = dataTable()
    form.Show(Grasshopper.Instances.ActiveCanvas)


table.gh (2.7 KB)

At this moment i fix it by calculate the (width, height) from the gridview and assign them to the window.


Another question , is it possible to update values without close and open the window every time?

No idea or example?

Problem solved: