OK - I'll look into this further. It turns out the .NET 3.5 DOES allow this:

namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
Button btnCopy;
Button btn = new Button();
this.Controls.Add(btn);
btnCopy = (Button)this.Controls[0];
bool yes = (btn == btnCopy);
}
}
}

On 9/3/2011 8:31 PM, 刘振海 wrote:
> Hi Barton,
>
> **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!
>
_________________________________________________
Python.NET mailing list - PythonDotNet@python.org
http://mail.python.org/mailman/listinfo/pythondotnet

Reply via email to