因为ListBox中大多显示的是文本内容,而我们常常需要同时保存数据的键值,就特别需要itemdata属性了。

解决方案 »

  1.   

    创建一个用ToString()方法返回要显示文本的类,然后把这个类的实例添加到ListBox的Items中
      

  2.   

    xingyaohua(邢跃华):能否展示一个简单的例子?初学者,见笑了。
      

  3.   

    public partial class Form1 : Form
        {
            private class FieldMap
            {
                private string m_Caption = "";
                private string m_FieldName = "";
                public string Caption
                {
                    get { return this.m_Caption; }
                    set { this.m_Caption = value; }
                }
                public string FieldName
                {
                    get { return this.m_FieldName; }
                    set { this.m_FieldName = value; }
                }
                public override string ToString()
                {
                    return m_Caption;
                }
            }
            public Form1()
            {
                InitializeComponent();
                FieldMap map = new FieldMap();
                map.FieldName = "iDoc";
                map.Caption = "凭证号";
                this.listBox1.Items.Add(map);
                map = new FieldMap();
                map.FieldName = "mc";
                map.Caption = "贷方金额";
                this.listBox1.Items.Add(map);
            }
            private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
            {
                FieldMap map = this.listBox1.SelectedItem as FieldMap;
                if (map != null)
                {
                    MessageBox.Show(string.Format("列标题为:{0}\n字段名称为:{1}",map.Caption ,map.FieldName));
                }
            }
        }
      

  4.   

    to jointan() :谢谢!我们是同行,有问题会再次请教!
    可以留个email吗?
    我的email: [email protected]