[Python.NET] Is there a chance to imprive Python for .net to let "System.Windows.Forms.Form().Controls" be indexable?

Barton barton at BCDesignsWell.com
Sat Sep 3 05:17:33 CEST 2011


Very interesting;
Apparently, Microsoft doesn't think that it is a useful thing to index 
directly into a System.Windows.Forms.Control.ControlCollection Class.
The collection is still iterable in versions above 2.0, but the class no 
longer supports indexing. So:

 >>> print form.Controls[0]         # works in pythondotnet built on 
.NET 2.0 on prior.
<System.Windows.Forms.Button object at 0xaa8bc6c>
 >>>

for ctrl in form.Controls:
     print ctrl    # works in .NET 3.0 and above.


Compare
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection_properties.aspx
with
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection_properties%28VS.80%29.aspx
and you'll see that all ICollection and IList properties have been removed.

Reasons why are a good topic for future discussion.

On 8/31/2011 10:30 PM, 刘振海 wrote:
> Hi,
>
> here  is the code:
>
> import clr
> clr.AddReference("System.Windows.Forms")
> from System.Windows.Forms import Form,Application,Button
> form=Form()
> form.Controls.Add(Button())
> print form.Controls[0] #this code didnt work with an error say "not 
> indexable object"
>
> but this worked in ironpython,it seems in ironpython it treats the 
> "form.Controls" as an list like object
> I can only get the form.Controls value use the 
> "form.Controls.get_Item(0)" in the python for .net
> So is there a chance to imprive Python for .net to have 
> that characteristic?
>
> thanks
>
>
> _________________________________________________
> Python.NET mailing list - PythonDotNet at python.org
> http://mail.python.org/mailman/listinfo/pythondotnet
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/pythondotnet/attachments/20110902/e0f6dbb2/attachment.html>


More information about the PythonDotNet mailing list