我在组合框中有几个项目,还有10个输入字段。组合框中的每个项目都与objct“连接”,当我从组合框中选择第一个项目时,它应该填充来自对象编号1的数据的条目,当我选择第二个项目时,它应该使用来自对象2的数据......
要检查组合框中的哪个项目被选中,请使用:IdFieldComboBox.Active; 但我需要一直打电话,选择改变了。我应该用它做什么?
现在我使用了foucs处理程序,但它不是正确的解决方案:
protected void OnIdFieldComboBoxFocusChildSet (object o, Gtk.FocusChildSetArgs args)
{
unitNumber = IdFieldComboBox.Active;
}
答案 0 :(得分:0)
如果我找到了正确的GTK# ComboBox documentation,则已经为您详细说明了。该示例让您使用GetActiverIter
返回True / False是否找到,如果找到,则将值输出到作为out传入的TreeIter对象。
using System;
using Gtk;
class ComboBoxSample
{
static void Main ()
{
new ComboBoxSample ();
}
ComboBoxSample ()
{
Application.Init ();
Window win = new Window ("ComboBoxSample");
win.DeleteEvent += new DeleteEventHandler (OnWinDelete);
ComboBox combo = ComboBox.NewText ();
for (int i = 0; i < 5; i ++)
combo.AppendText ("item " + i);
combo.Changed += new EventHandler (OnComboBoxChanged);
win.Add (combo);
win.ShowAll ();
Application.Run ();
}
void OnComboBoxChanged (object o, EventArgs args)
{
ComboBox combo = o as ComboBox;
if (o == null)
return;
TreeIter iter;
if (combo.GetActiveIter (out iter))
Console.WriteLine ((string) combo.Model.GetValue (iter, 0));
}
void OnWinDelete (object obj, DeleteEventArgs args)
{
Application.Quit ();
}
}