0

我是 GTK# 的新手(以及桌面开发),我无法弄清楚这似乎是一项简单的任务。:(

我无法让一个简单的日期选择器工作。我有一个带有单个文本框条目和一个按钮的主窗口。单击按钮时,它会打开一个带有日历小部件的新窗口,当用户双击一个日期时,它应该将选定的日期返回到主窗口上的文本框条目。

这是我的代码,我错过了什么?

主窗口.cs

using System;
using Gtk;

public partial class MainWindow: Gtk.Window
{   
    public MainWindow (): base (Gtk.WindowType.Toplevel)
    {
        Build ();
    }

    protected void OnDeleteEvent (object sender, DeleteEventArgs a)
    {
        Application.Quit ();
        a.RetVal = true;
    }

    private DateTest1.CalendarTest datePicker;

    protected void OnButton1Clicked (object sender, EventArgs e)
    {
        datePicker = new DateTest1.CalendarTest();
        datePicker.DestroyEvent += new DestroyEventHandler(datePickerDestroyed); 
        datePicker.ShowAll(); 
    }

    public void datePickerDestroyed(object sender, EventArgs e)
    { 
        entry1.Text = datePicker.DatePicked.ToString();
    } 
}

日历测试.cs

using System;

namespace DateTest1
{
    public partial class CalendarTest : Gtk.Window
    {
        public DateTime DatePicked;

        public CalendarTest () : 
                base(Gtk.WindowType.Toplevel)
        {
            this.Build ();
        }

        protected void OnCalendar1DaySelectedDoubleClick (object sender, EventArgs e)
        {
            var datePicker = (Gtk.Calendar)sender;
            DatePicked = datePicker.Date;
            this.Destroy();
        }
    }
}
4

1 回答 1

1

您必须使用Destroyed事件,而不是DestroyEvent;) 也就是说,使用这个: datePicker.Destroyed += new EventHandler(datePickerDestroyed);

另请参阅此问题

于 2012-12-09T23:15:46.210 回答