Hi Barton, Thanks for your reply,I really appriciate! Here is my thought: 在 2011年9月4日 上午3:35,Barton <bar...@bcdesignswell.com>写道:
> ** > Yes, I agree that the Item Property is still there. > It seems to be exposed ONLY FROM IEnumerator.GetEnumerator() or the > Findxxx() functions provided by the class due to its virtual nature: > > public *virtual *Control this [ int index ] { get; } > * * I don't think the Item Property isn't exposed due to its virtual nature. I did some test in C#,it turns out that the virtual modified Item property can be accessed by python .net with the index manner .I noticed there is a new function "get_Item" being add to the instance object. The same new function "get_Item" can be find in the Form().Controls but Form().Controls can not be indexable. It is wield. I check the source code of python for .net and find this from "classmanager.cs": // Check for indexer ParameterInfo[] args = pi.GetIndexParameters(); if (args.GetLength(0) > 0) { Indexer idx = ci.indexer; if (idx == null) { ci.indexer = new Indexer(); idx = ci.indexer; } idx.AddProperty(pi); continue; } Maybe the mechanism of checking for indexer is not perfect? Thanks! > > Hope that helps > > > On 9/3/2011 7:09 AM, 刘振海 wrote: > > Hi Barton, > thanks for your reply. > I have check the MSDN documents. It seems the Item properties both exist in > .net2.0 and .net4.0 > here is the MSDN for > http://msdn.microsoft.com/en-us/library/system.windows.forms.control.controlcollection_properties%28VS.80%29.aspx > [image: Public property] > Item[Int32]<http://msdn.microsoft.com/en-us/library/333f9hk4.aspx> Indicates > the > Control<http://msdn.microsoft.com/en-us/library/system.windows.forms.control.aspx> > at > the specified indexed location in the collection. [image: Public > property] Item[String]<http://msdn.microsoft.com/en-us/library/s1865435.aspx> > Indicates > a > Control<http://msdn.microsoft.com/en-us/library/system.windows.forms.control.aspx> > with > the specified key in the collection. > and I get the blew code from C# > " > public class ControlCollection : ArrangedElementCollection, IList, > ICollection, IEnumerable, ICloneable { > public virtual Control this[int index] { get; } > public virtual Control this[string key] { get; } > " > In C# the Controls support index,So I think It will be intuitive for > Controls to support index. > > > > 2011/9/3 Barton <bar...@bcdesignswell.com> > >> 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@python.org >> http://mail.python.org/mailman/listinfo/pythondotnet >> >> >
_________________________________________________ Python.NET mailing list - PythonDotNet@python.org http://mail.python.org/mailman/listinfo/pythondotnet