【问题标题】:C# add items to list from class then add list items to listboxC#将项目添加到类中,然后将列表项添加到列表框
【发布时间】:2017-02-14 18:57:49
【问题描述】:

我是 C# 班的学生,这是我的课程介绍性作业,请多多包涵。当按下 New 按钮时,将使用 name 和 phone 值创建一个 CPerson 对象,并将该对象添加到 List。

class CPerson 
{ 

    private string m_sName;  
    private string m_sPhone;

    public string Name
    {
        get { return this.m_sName; }
        set 
        { 

            this.m_sName = value; 
        }
    }
    public string Phone
    {
        get { return this.m_sPhone; }
        set 
        {
            this.m_sPhone = value; 
        }
    }


}

public partial class Form1 : Form
{
    private List<CPerson> PhoneNum = new List<CPerson>(); //<CPerson> or <string>?
    public Form1()
    {
        InitializeComponent();
        newbutton.Enabled = false;
        changebutton.Enabled = false;
        savebutton.Enabled = false;
    }



    private void newbutton_Click(object sender, EventArgs e)
    {
        changebutton.Enabled = true;
        savebutton.Enabled = true;
        PhoneNum.Add(new CPerson { Name = Namebox.Text + " : ", Phone = phonebox.Text });
        listBox1.Items.Add(PhoneNum); //text = "Collection"

    }

分配说“CPerson ToString() 覆盖将用于在列表框中显示姓名和电话号码”,如上图所示,我不一定明白,但我猜我必须使用这样的东西?

        CPerson data = new CPerson();
        data.ToString();

无论哪种方式,就像现在的代码一样,我在列表框中得到的只是“(集合)”。任何帮助将不胜感激!

【问题讨论】:

  • listBox1.DataSource = PhoneNum; BindingList 会更好。
  • 谢谢!到目前为止效果很好

标签: c# winforms list class listbox


【解决方案1】:

这是要求覆盖 ToString() 方法。你可以这样做:

class CPerson 
{ 

private string m_sName;  
private string m_sPhone;

public string Name
{
    get { return this.m_sName; }
    set 
    { 

        this.m_sName = value; 
    }
}
public string Phone
{
    get { return this.m_sPhone; }
    set 
    {
        this.m_sPhone = value; 
    }
}

public override string ToString()
{
    return Name + ": " + Phone;
}

我没有正确添加到列表中,但我假设您可以使用 ToString() 执行以下操作:

listBox1.Items.Add(data.ToString());

【讨论】:

    【解决方案2】:

    关闭...

        class CPerson
        {
            private string m_sName;
            private string m_sPhone;
    
            public string Name
            {
                get { return this.m_sName; }
                set
                {
    
                    this.m_sName = value;
                }
            }
            public string Phone
            {
                get { return this.m_sPhone; }
                set
                {
                    this.m_sPhone = value;
                }
            }
    
            public override string ToString()
            {
                return Name + ": " + Phone;
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 2017-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多