F#Mono GTK配置事件

F#Mono GTK配置事件,f#,mono,resize,gtk,gtk#,F#,Mono,Resize,Gtk,Gtk#,我是否以正确的方式使用了ConfigureEvent?当我调整窗口的大小或更改窗口的位置时,什么都没有发生,标签的文本没有像我预期的那样更改为“已更改” module Main = open System open Gtk [<EntryPoint>] let Main(args) = Application.Init() let win = new MainWindow.MyWindow() // ----

我是否以正确的方式使用了ConfigureEvent?当我调整窗口的大小或更改窗口的位置时,什么都没有发生,标签的文本没有像我预期的那样更改为“已更改”

module Main =
    open System
    open Gtk
    [<EntryPoint>]
    let Main(args) = 
        Application.Init()
        let win = new MainWindow.MyWindow()
//      -----------------------------------------
        let l = new Label( "None" )
        win.Add l
        win.ConfigureEvent.Add( fun _ ->
            l.Text <- "Changed" )
//      -----------------------------------------
        win.ShowAll()
        Application.Run()
        0
主模块=
开放系统
开放式Gtk
[]
let Main(args)=
Application.Init()
let win=new main window.MyWindow()
//      -----------------------------------------
设l=新标签(“无”)
赢,加l
win.ConfigureEvent.Add(乐趣->
l、 Text根据这一点,您需要向处理程序添加一个属性,以使其工作。此C#代码工作:

[GLib.ConnectBefore]
protected void OnConfigureEvent (object sender, ConfigureEventArgs a)
{
    label1.Text = "Changed";
}
要在F#代码中实现这一点,您可能需要将处理程序设置为实例方法而不是lambda,因此您需要将属性附加到某个对象。我猜您确实应该使用其他事件,尽管我不确定是哪个事件。

它是否适用于C#?如果不是,那么您使用的API就错了