0

モノラルと GTK シャープを使用して、非常にシンプルな GUI を開発しようとしています。いくつかの 2 つのコンボボックスがあり、最初のアイテムから選択したアイテムに基づいて、2 番目のオプションを変更する必要があります。

//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
}

コードは機能しますが、2 番目のコンボボックスは更新されていないようです。ウィンドウを更新する必要があると思いますか?

ありがとう

4

3 に答える 3

0

遅すぎるかもしれませんが...

((ListStore)combobox.Model).Clear(); 
combobox.AppendText("item");
于 2013-07-25T10:10:35.090 に答える