0
キーを押したときに更新するラベルウィジェットを取得しようとしています。何らかの理由で、Gtkスレッドがキープレスを正しく登録していても(たとえば、コンソールにキーを書き込むなど)、ラベルテキストを更新することはできません。これはmacos上でモノ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