我是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();
}
}
}
答案 0 :(得分:1)
您必须使用Destroyed
事件,而不是DestroyEvent
;)
也就是说,使用这个:
datePicker.Destroyed += new EventHandler(datePickerDestroyed);