[IronPython] .NET Events in IronPython

Michael Shilman shilman at microsoft.com
Fri Nov 11 12:58:59 PST 2005

Is there any way to declare .NET events in IronPython?


Here is a simple example in C# that "abstracts" a button pressed event
into a "hello" event:


    public delegate void HelloInvoked();

    public class HelloControl : Panel


        public event HelloInvoked Hello;

        public HelloControl()


            Button b = new Button();

            b.Text = "Hello";

            b.Click += new EventHandler(b_Click);

            b.Dock = DockStyle.Fill;




        void b_Click(object sender, EventArgs e)


            if (Hello != null) Hello();




I can do something equivalent with Python functions:


class HelloControl(Panel):

     Hello = []

     def __init__(self):

          b = Button(Text="Hello",Dock=DockStyle.Fill)

          b.Click += self.on_Click


     def on_Click(self,sender,e):

          for h in self.Hello: h()

def Foo(): print "hello"

hc.Hello += [Foo]


But for consistency with my other C# code I'd like to use events if


Any thoughts?


Many thanks,




-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/users-ironpython.com/attachments/20051111/33121ecd/attachment.html

More information about the users mailing list