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:
What i want:
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)