[IronPython] missing method in datagridview?

Dino Viehland dinov at exchange.microsoft.com
Fri Jul 21 22:01:40 CEST 2006


I believe this is a bug in the DataGridView, or otherwise it's the correct behavior of the DataGridView.  The first code snippet below works, the 2nd code snippet fails to have the columns as you'd expect.  The only difference between them is the order in which the user-columns are added vs. when the auto-generated columns should be generated.  Luckily for you the developer of this feature was on Channel9 yesterday, so I'll ping her and see what she thinks J.


import clr
clr.AddReference('System.Windows.Forms')
import System.Windows.Forms as SWF

data = list()
data.append('abc')
data.append('def')

f = SWF.Form()
dgv = SWF.DataGridView()

f.Controls.Add(dgv)
myCol = SWF.DataGridViewButtonColumn(Text="Spaminate",Name="ButtonCol",UseColumnTextForButtonValue = True)
dgv.Columns.Add(myCol)
myCol = SWF.DataGridViewButtonColumn(Text="Spaminate2",Name="SecondColumn",UseColumnTextForButtonValue = True)
dgv.Columns.Add(myCol)


dgv.AutoGenerateColumns = True
dgv.DataSource = data
print dgv.Columns.Count
print dgv.Columns[0]
print dgv.Columns[1]
print dgv.Columns[2]
print dgv.Columns[0] == dgv.Columns['ButtonCol']
print dgv.Columns[1] == dgv.Columns['SecondColumn']
print dgv.Columns[2] == dgv.Columns['Length']

SWF.Application.Run(f)


import clr
clr.AddReference('System.Windows.Forms')
import System.Windows.Forms as SWF

data = list()
data.append('abc')
data.append('def')

f = SWF.Form()
dgv = SWF.DataGridView()

dgv.AutoGenerateColumns = True
dgv.DataSource = data

f.Controls.Add(dgv)
myCol = SWF.DataGridViewButtonColumn(Text="Spaminate",Name="ButtonCol",UseColumnTextForButtonValue = True)
dgv.Columns.Add(myCol)
myCol = SWF.DataGridViewButtonColumn(Text="Spaminate2",Name="SecondColumn",UseColumnTextForButtonValue = True)
dgv.Columns.Add(myCol)


print dgv.Columns.Count
print dgv.Columns[0]
print dgv.Columns[1]
print dgv.Columns[2]
print dgv.Columns[0] == dgv.Columns['ButtonCol']
print dgv.Columns[1] == dgv.Columns['SecondColumn']
print dgv.Columns[2] == dgv.Columns['Length']

SWF.Application.Run(f)


From: users-bounces at lists.ironpython.com [mailto:users-bounces at lists.ironpython.com] On Behalf Of jeff sacksteder
Sent: Friday, July 21, 2006 6:55 AM
To: Discussion of IronPython
Subject: Re: [IronPython] missing method in datagridview?


I think.Columns['ButtonCol'] not working may be a bug.  .Columns.Item['ButtonCol'] shouldn't work.  The interesting question is if the bound columns should show up as well - that's probably not our bug but I won't know w/o doing some more research into how the columns are supposed to work.

Interestingly, When I Add() a column to my DataGridView control it appears as the left-most column. I don't think this is the intended way to layout the control. Modifying the DisplayIndex property does not move it either. It's like the layout logic only thinks there is the one column, as well.  It probably has the same root cause .
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20060721/2c3df70c/attachment.html>


More information about the Ironpython-users mailing list