You may declare and use an event for a particular framework delegate type like this:

open System.Windows.Forms

type MyControl() =

let tickEvent = new Event<MouseEventHandler,_>()

member self.React() =

tickEvent.Trigger (x,new MouseEventArgs(MouseButtons.Middle,2,100,300,32))

member self.OnTick = tickEvent.Publish

By on 9/9/2008 4:42 PM ()

Thanks very much for the responses. I actually made changes like this:

Code in 1.9.4:
let invokeXXX, delegateXXX = IEvent.create_DelegateEvent<delegatetypeXXXEvent>()
let triggerXXX()=invokeXXX([||])
delegateXXX.AddHandler(new delegatetypeXXXEvent(XXXgo))
Code in 1.9.6:
let eventXXX = new DelegateEvent<delegatetypeXXXEvent>()
let delegateXXX = eventXXX.Publish
let triggerXXX() = eventXXX.Trigger([||])
delegateXXX.AddHandler(new delegatetypeXXXEvent(XXXgo))

This semed to be the only way to support the C# code that I currently have, which needs to access these events. This C# code probably needs rewriting, but maybe later! If this looks wrong, please let me know.

If you have any suggestions for improvements or a link to some samples which illustrate the best way to have custom events shared between C# and F# code that would also be great.

Thanks again for the help.

By on 9/10/2008 12:57 PM ()

IEvent, became Event. There's more details in the detailed release notes:

[link:blogs.msdn.com]

By on 9/9/2008 2:10 AM ()
IntelliFactory Offices Copyright (c) 2011-2012 IntelliFactory. All rights reserved.
Home | Products | Consulting | Trainings | Blogs | Jobs | Contact Us | Terms of Use | Privacy Policy | Cookie Policy
Built with WebSharper