0
我試圖讓一個標籤小部件在按下按鍵時進行更新。出於某種原因,即使Gtk線程正確註冊按鍵(例如,將鍵寫入控制檯),也無法獲取標籤文本更新。這是macos上的mono 4.4.0和gtk-sharp 2.12。如何在事件處理程序中獲取gtksharp刷新小部件?
public MainWindow() : base(Gtk.WindowType.Toplevel)
{
Build();
this.KeyPressEvent += ToddlerKeyPressEventHandler;
}
public void ToddlerKeyPressEventHandler (object o, Gtk.KeyPressEventArgs args) {
Gtk.Application.Invoke(delegate {
string letter = args.Event.Key.ToString();
this.letterLabel.Text = letter;
Console.WriteLine(letter);
this.letterLabel.QueueDraw();
});
}
你爲什麼要調用事件處理程序代碼?該事件將在主gtk線程中執行。 –
正在嘗試確保代碼的執行位置。兩種方式都行不通。 – cemig