【问题标题】:I need help Populating listBox data on form load c#我需要帮助在表单加载 c# 上填充 listBox 数据
【发布时间】:2020-03-07 00:45:19
【问题描述】:

我正在处理一项任务,要求我创建一个名为 customer 的类,该类将包括 3 个名为 FName、LName 和 Phone 的自动实现的属性、一个参数化构造函数和一个 GetCustomer 方法。

然后我必须将 Customer 对象的 LIST 添加到项目(不在类中)并将其命名为 CustomerDB。

然后创建一个 LoadDB 方法,它将 4 个新客户对象(下表中给出的数据)添加到 CustomerDB 列表。 IE 名字 姓氏 电话 汤姆·多伊 555-7654 布拉德皮特 555-6543 吉尔杰克 555-5432 皮特保罗 555-1234

应该在表单加载时调用此方法,从而用数据填充列表。

这是我目前所拥有的。

`public partial class Form1 : Form
 {


    private string fName, lName, phone;

    public Form1()
    {
        InitializeComponent();

    }




    private void Form1_Load(object sender, EventArgs e)
    {
        LoadDB();
    }


    private void LoadDB()
    {


        List<Customer> CustomerDB = new List<Customer>();


        CustomerDB.Add(new Customer { FName = "Tom", LName = "Doe", Phone = "555-7654" });
        CustomerDB.Add(new Customer { FName = "Brad", LName = "Pitt", Phone = "555-6543" });
        CustomerDB.Add(new Customer { FName = "Jill", LName = "Jack", Phone = "555-5432" });
        CustomerDB.Add(new Customer { FName = "Peter", LName = "Paul", Phone = "555-4321" });




              }
         }

    class Customer
    {
    public string FName { get; set; }
    public string LName { get; set; }
    public string Phone { get; set; }

    public Customer(string fN, string lN, string ph)

    {
        FName = fN;
        LName = lN;
        Phone = ph;
    }




    public string GetCustomer()
    {

        return "FirstName: " + FName + "   LastName: " + LName + "  Phone: " + Phone;
    }
}

}

我的困难是让 loadDB 方法在表单首次加载时用数据填充我的 lstBox。我整天都在研究不同的在线资料。终于求助于这里。在此先感谢我非常感谢您的帮助。

【问题讨论】:

    标签: c# list winforms class methods


    【解决方案1】:

    您需要在Customer 类中使用ToString 覆盖方法:

    public class Customer
    {
    
        public override string ToString()
        {
            return GetCustomer();
        }
    
        ...
    
    }
    

    因此列表可以根据需要显示每个项目。

    您可以调整列表必须显示的内容。

    要使用构造函数并填充您需要编写的列表框:

    private void LoadDB()
    {
      List<Customer> CustomerDB = new List<Customer>();
    
      CustomerDB.Add(new Customer("Tom", "Doe", "555-7654"));
      CustomerDB.Add(new Customer("Brad", "Pitt", "555-6543"));
      CustomerDB.Add(new Customer("Jill", "Jack", "555-5432"));
      CustomerDB.Add(new Customer("Peter", "Paul", "555-4321"));
    
      listBox1.Items.AddRange(CustomerDB.ToArray());
    }
    

    如果要保留CustomerDB 变量,则需要在类级别移动它。

    public partial class Form1 : Form
    {
    
      List<Customer> CustomerDB = new List<Customer>();
    
      ...
    
    }
    


    【讨论】:

    • 谢谢,但我必须使用 GetCustomer 方法
    • 非常感谢,我一定会试一试的。再次感谢:)
    • 嗨,奥利维尔。当您说将 loadDB 方法放在最后时,您是什么意思?看起来怎么样?
    • 我还是会在 LoadDB 方法中编写以下内容并在 form1_Load 方法中调用它: CustomerDB.Add(new Customer("Tom", "Doe", "555-7654")); CustomerDB.Add(new Customer("Brad", "Pitt", "555-6543")); CustomerDB.Add(new Customer("Jill", "Jack", "555-5432")); CustomerDB.Add(new Customer("Peter", "Paul", "555-4321"));
    猜你喜欢
    • 2014-06-22
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多