我試圖開發一個非常簡單的圖形用戶界面與單聲道和GTK銳利。我有幾兩個組合框,我需要改變的基礎上,選擇的項目從第一個secod可用的選項:GTK夏普刷新/重繪部件
//Create window container
var mainContainer = new Table (3, 1, false);
//add form
var formContainer = new Table (1, 3, true);
//FIRST COMBOBOX
pdfSelect = new ComboBox(new string[] {"Monthly", "Monthly Offline", "Quarterly" }) { Active = 2 };
pdfSelect.Changed += new EventHandler(OnPdfSelectChanged);
formContainer.Attach (pdfSelect, 1, 2, 0, 1);
//MONTH COMBOBOX
monthSelect = new ComboBox(new string[] { "January","February","March","April","May","June","July","August","September","October","November","December" }){ Active = 0 };
formContainer.Attach(monthSelect, 2, 3, 0, 1);
mainContainer.Attach(formContainer, 0, 1, 0, 1);
win.Add(mainContainer);
我改變事件是如下:
public static void OnPdfSelectChanged(object o, EventArgs args) {
ComboBox combo = o as ComboBox;
if (o == null) return;
if (combo.ActiveText.Equals("Monthly") || combo.ActiveText.Equals("Monthly Offline"))
{
monthSelect = new ComboBox(new string[] { "January","February","March","April","May","June","July",
"August","September","October","November","December" }) { Active = 0 };
}
else
{
monthSelect = new ComboBox(new string[] { "January", "April", "July", "October" }) { Active = 0 };
}
//TODO REFRESH WINDOW
}
代碼工作但第二個組合框似乎不會被更新。我想我需要刷新窗口?
感謝
如果您分配一個新的模型你甚至不需要Clear()(並且,正確的,你需要提供至少一個單元格渲染器。) – fog 2013-02-14 13:11:50