2014-01-15 46 views
-2

我在将列表中的项目放入文本框时遇到问题。我在Visual Studio中使用Windows窗体。从ID列表中获取项目

我有一个窗体与一些文本框,并把输入到列表。该列表包含客户,并且用户从其中一个文本框给客户一个ID。现在我想从列表中的所有项目到下一个表格。

我有一个公共类名单:

public class myClassCustomer 
{ 
    public List<customerInformation> cusInformation = new List<customerInformation>(); 

    public class customerInformation 
    { 
     public string customerId { get; set; } 
     public string phoneNumber { get; set; } 
     public string adress { get; set; } 
    } 

而对于在Form1节省输入代码:

myClassCustomer myClassCustomer = new myClassCustomer() 
customers.cusInformation.Add(new myProject.myClassCustomer.customerInformation 
{ 
    customerId = txtCustomerId.Text, 
    phoneNumber = txtPhonenumber.Text, 
    adress = txtAdress.Text 
}); 

现在,在窗口2这是我至今写:

public form2() 
{ 
    InitializeComponent(); 
    myClassCustomer myClassCustomer = new myClassCustomer(); 
} 

有谁知道如何从列表中获取所有项目?

+1

你提供了两个看似不同的代码片断。 'Casecs'不以任何方式'myClassCustomer',我可以看到涉及... –

+0

是的,我一定是做womething错了,当我复制的代码。这应该是: myClassCustomer myClassCustomer =新myClassCustomer(); – user3076791

+0

..凯。那么,'客户'是什么?那也是一堂课?请提供正确的代码。 –

回答

1

我假定这个问题归结为如何“获得所有项目从列表中的下一个形式”,而不是标题所暗示的“获得通过ID从列表中的项目”。

问题“任何人都知道如何从列表中获取所有项目?”有点重复,因为列表已经是所有的项目。

因此,我将重点回答关于可用于下一个表单的列表项的问题。我认为“客户”基本上只是一个列表,如果不是,你应该考虑使用它来代替自制列表类,除非你有其他特别的要求。至少,我希望客户类实现IEnumerable接口。

为了使其他表单能够访问您的客户列表,您需要以某种方式提供该信息:例如,您可以更改其他表单的构造函数以要求客户列表。然后,当这个原始表单调用第二个表单时,它必须通过该列表,它已经被假定为一个参数。

还有其他一些方法可以将这些信息传播到您的应用程序中,但听起来您只是处于初学者级别,所以上面给出的方法可能是最简单的。

也许你可以澄清你的问题,如果这没有回答。

编辑:您自己编辑的部分内容已更改我所评论的代码。现在看来,你并不是在列表之后,但建议是一样的;而不是传递一个List,你只是传递一个myClassCustomer。

+0

好吧,我如何改变其它形式的构造函数需要一个列表OM客户? – user3076791

+1

因此,例如,说你的其他形式有一个默认的构造函数,可能看起来像: >公共Otherform(){ 初始化(); } 您可能会将其更改为: > public OtherForm(List customers){ Initialise(); SomeList = customers; } 假定该“SomeList”是存储这个名单你以后OtherForm类的成员变量。 –

+0

好感谢,我会尝试 – user3076791

0

在Form1中只要定义一个公共财产

public List<customerInformation> AllCustomers 
{ 
    get { return yourList; } 
} 

当打开您的Form2Form1使用此代码:

Form2 f2 = new Form2(); 
f2.Show(this); 

然后你可以从Form2的访问您的客户:

var myCustomerList = ((Form1)Owner).AllCustomers; 
+0

谢谢。我不明白AllCustomers是什么意思? – user3076791