Skip to content

Instantly share code, notes, and snippets.

Created March 29, 2013 15:26
Show Gist options
  • Save anonymous/5271530 to your computer and use it in GitHub Desktop.
Save anonymous/5271530 to your computer and use it in GitHub Desktop.
Why DataGridView shrinks in TabPage.py??
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
ColumnIndex = ["Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8"];
RowIndex = ["Row1", "Row2", "Row3", "Row4", "Row5", "Row6", "Row7", "Row8"];
class GridTable(Form):
def __init__(self):
self.Table = DataGridView()
self.Table.ColumnCount = len(ColumnIndex)
for i in xrange(self.Table.ColumnCount):
column = self.Table.Columns[i]
column.Name = ColumnIndex[i]
column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
column.HeaderCell.Style.Font = Font(Control.DefaultFont, FontStyle.Bold)
for i in xrange(len(RowIndex)):
self.Table.Rows.Add()
row = self.Table.Rows[i]
row.HeaderCell.Value = RowIndex[i]
row.HeaderCell.Style.Font = Font(Control.DefaultFont, FontStyle.Bold)
self.Table.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
self.Table.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
self.Table.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells
self.Table.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
self.Table.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders
self.Table.Dock = DockStyle.Fill
self.Table.MultiSelect = False
self.Table.ReadOnly = True
self.Table.AllowUserToAddRows = False
self.Table.AllowUserToDeleteRows = False
self.Table.ScrollBars = ScrollBars.None
self.Table.AutoSize = True
def getInstance(self):
return self.Table
class GuiForm(Form):
def __init__(self):
self.Text = "Graphic UI"
self.AutoSize = True
self.AutoSizeMode = AutoSizeMode.GrowAndShrink
self.tabControl = TabControl()
self.tabControl.AutoSize = True
self.tabControl.Dock = DockStyle.Fill
self.tabControl.Alignment = TabAlignment.Bottom
self.Controls.Add(self.tabControl)
self.addTabPage("Grid Table#1", GridTable())
self.addTabPage("Grid Table#2", GridTable())
self.addTabPage("Grid Table#3", GridTable())
def addTabPage(self, label, content):
self.tabPage = TabPage()
self.tabPage.AutoSize = True
self.tabPage.Text = label
self.tabPage.Controls.Add(content.getInstance())
self.tabControl.TabPages.Add(self.tabPage)
def Main():
Application.EnableVisualStyles()
Application.Run(GuiForm())
if __name__ == "__main__":
Main()
import clr
clr.AddReferenceByPartialName("System.Windows.Forms")
clr.AddReferenceByPartialName("System.Drawing")
from System.Windows.Forms import *
from System.Drawing import *
ColumnIndex = ["Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Column7", "Column8"];
RowIndex = ["Row1", "Row2", "Row3", "Row4", "Row5", "Row6", "Row7", "Row8"];
class GridTable(Form):
def __init__(self):
self.Table = DataGridView()
self.Table.ColumnCount = len(ColumnIndex)
for i in xrange(self.Table.ColumnCount):
column = self.Table.Columns[i]
column.Name = ColumnIndex[i]
column.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
column.HeaderCell.Style.Font = Font(Control.DefaultFont, FontStyle.Bold)
for i in xrange(len(RowIndex)):
self.Table.Rows.Add()
row = self.Table.Rows[i]
row.HeaderCell.Value = RowIndex[i]
row.HeaderCell.Style.Font = Font(Control.DefaultFont, FontStyle.Bold)
self.Table.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
self.Table.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells
self.Table.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells
self.Table.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize
self.Table.RowHeadersWidthSizeMode = DataGridViewRowHeadersWidthSizeMode.AutoSizeToDisplayedHeaders
self.Table.Dock = DockStyle.Fill
self.Table.MultiSelect = False
self.Table.ReadOnly = True
self.Table.AllowUserToAddRows = False
self.Table.AllowUserToDeleteRows = False
self.Table.ScrollBars = ScrollBars.None
self.Table.AutoSize = True
self.Controls.Add(self.Table)
self.AutoSize = True
self.AutoSizeMode = AutoSizeMode.GrowAndShrink
def Main():
Application.EnableVisualStyles()
Application.Run(GridTable())
if __name__ == "__main__":
Main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment