2012-12-09 12 views
0

我是GTK#(和桌面開發)的新手,我無法弄清楚什麼是一個簡單的任務。 :(嘗試在GTK中創建DatePicker的問題#

我不能得到一個簡單的日期選擇器的工作。我有一個主窗口,只有一個文本框條目和一個按鈕。當點擊按鈕時,它會打開一個新的窗口,在用戶雙擊一個日期,然後它應該在選定的日期返回到主窗口的文本框中輸入。

這裏是我的代碼,我失去了什麼?

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

你的代碼看起來不錯。嘗試在MD的調試器中運行它。 – 2012-12-09 15:59:39

回答

1

您必須使用Destroyed事件,而不是DestroyEvent;) 也就是說,使用此: datePicker.Destroyed += new EventHandler(datePickerDestroyed);

又見this question