无法尝试在GTK中创建DatePicker#

时间:2012-12-09 15:53:31

标签: c# mono gtk#

我是GTK#的新手(以及桌面开发)并且我无法弄清楚什么似乎是一个简单的任务。 :(

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

这是我的代码,我缺少什么?

MainWindow.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();
    } 
}

CalendarTest.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();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

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

另见this question