C# 使用“下一步”和“上一步”按钮浏览列表

C# 使用“下一步”和“上一步”按钮浏览列表,c#,winforms,list,button,using,C#,Winforms,List,Button,Using,所以我的C#forms有些问题。我创建了一个客户列表,其中存储了客户的姓名、郊区和银行账户余额。使用“下一步”和“上一步”按钮,我需要允许用户浏览列表中当前的5个对象。我是如何计划这样做的是当用户点击任何一个按钮时,文本框将填充相关信息。客户和其他详细信息是按钮的原因是,以后我需要能够更新存储在这些字段中的信息,因此我认为一个好方法是删除文本框中已有的内容,键入新信息,然后按下按钮进行更新 无论如何,我的主要问题是我需要使用我的视图按钮在列表中移动 这是我的表单的外观: 我目前的表格代码如下:

所以我的C#forms有些问题。我创建了一个客户列表,其中存储了客户的姓名、郊区和银行账户余额。使用“下一步”和“上一步”按钮,我需要允许用户浏览列表中当前的5个对象。我是如何计划这样做的是当用户点击任何一个按钮时,文本框将填充相关信息。客户和其他详细信息是按钮的原因是,以后我需要能够更新存储在这些字段中的信息,因此我认为一个好方法是删除文本框中已有的内容,键入新信息,然后按下按钮进行更新

无论如何,我的主要问题是我需要使用我的视图按钮在列表中移动

这是我的表单的外观:

我目前的表格代码如下:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        Customer c1 = new Customer("Sibel Yilmaz", "Wollongong", 2500, 3000, 5000);
        Customer c2 = new Customer("John Doe", "Figtree", 2547, 2500, 3655);
        Customer c3 = new Customer("Mariah Moore", "Coniston", 2500, 7000, 36000);
        Customer c4 = new Customer("Jessica Blackshaw", "Bellambi", 3500, 6000, 4750);
        Customer c5 = new Customer("Suzan Yilmaz", "Wollongong", 2500, 2000, 47110);

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

        customers.Add(c1);
        customers.Add(c2);
        customers.Add(c3);
        customers.Add(c4);
        customers.Add(c5);
    }

    private void Form1_Load(object sender, EventArgs e) { }
    private void button2_Click(object sender, EventArgs e) { }
    private void button6_Click(object sender, EventArgs e) { }
    private void textBox4_TextChanged(object sender, EventArgs e) { }
    private void Customer_Click(object sender, EventArgs e) { }
}

请帮助我,让我知道最好的方法是什么。

您需要做的第一件事是使您的客户列表具有类级别的可见性,以便您可以在按钮单击事件中访问它

public partial class Form1 : Form
{
    int index = 0;
    List<Customer> customers = new List<Customer>();
    public Form1()
    {
      ... The remainder of your Constructor code
公共部分类表单1:表单
{
int指数=0;
列出客户=新列表();
公共表格1()
{
…构造函数代码的其余部分
一旦你这样做了,你应该能够做这样的事情

private void next_Click(object sender, EventArgs e)
{
    if (index < customers.Count - 1)
    {
        index += 1;
        textBox1.Text = customers[index].Name;

        ...
    }
}

private void previous_Click(object sender, EventArgs e)
{
    if (index > 0)
    {
        index -= 1;
        textBox1.Text = customers[index].Name;

        ...
    }
}
private void下一步\u单击(对象发送方,事件参数e)
{
如果(索引<客户计数-1)
{
指数+=1;
textBox1.Text=customers[index].Name;
...
}
}
私有无效上一次单击(对象发送者,事件参数e)
{
如果(索引>0)
{
指数-=1;
textBox1.Text=customers[index].Name;
...
}
}

您需要做的第一件事是使您的客户列表具有类级别的可见性,以便您可以在按钮单击事件中访问它

public partial class Form1 : Form
{
    int index = 0;
    List<Customer> customers = new List<Customer>();
    public Form1()
    {
      ... The remainder of your Constructor code
公共部分类表单1:表单
{
int指数=0;
列出客户=新列表();
公共表格1()
{
…构造函数代码的其余部分
一旦你这样做了,你应该能够做这样的事情

private void next_Click(object sender, EventArgs e)
{
    if (index < customers.Count - 1)
    {
        index += 1;
        textBox1.Text = customers[index].Name;

        ...
    }
}

private void previous_Click(object sender, EventArgs e)
{
    if (index > 0)
    {
        index -= 1;
        textBox1.Text = customers[index].Name;

        ...
    }
}
private void下一步\u单击(对象发送方,事件参数e)
{
如果(索引<客户计数-1)
{
指数+=1;
textBox1.Text=customers[index].Name;
...
}
}
私有无效上一次单击(对象发送者,事件参数e)
{
如果(索引>0)
{
指数-=1;
textBox1.Text=customers[index].Name;
...
}
}

使用数据绑定,如果您需要更改某些字段的内容,可以使用按钮更新或简单地将DataSourceUpdateMode设置为OnPropertyChange,每次更改其中一个文本框中的文本时,它都会更新数据源(在本例中为列表)。您可以单独定义绑定对象,然后将其添加到textbox.DataBindings,这样您就可以对其进行格式化和解析,但这里我只是为了演示而直接添加了它们:

List<Customer> customers;

public Form1()
{
     InitializeComponent();

     //you could add the Customers directly to the add method of the list.
     Customer c1 = new Customer("Sibel Yilmaz", "Wollongong", 2500, 3000, 5000);
     Customer c2 = new Customer("John Doe", "Figtree", 2547, 2500, 3655);
     Customer c3 = new Customer("Mariah Moore", "Coniston", 2500, 7000, 36000);
     Customer c4 = new Customer("Jessica Blackshaw", "Bellambi", 3500, 6000, 4750);
     Customer c5 = new Customer("Suzan Yilmaz", "Wollongong", 2500, 2000, 47110);

     customers = new List<Customer>();

     customers.Add(c1);
     customers.Add(c2);
     customers.Add(c3);
     customers.Add(c4);
     customers.Add(c5);

     textBox1.DataBindings.Add("Text", customers, "Name",true,DataSourceUpdateMode.OnPropertyChanged);
     textBox2.DataBindings.Add("Text", customers, "Suburb", true, DataSourceUpdateMode.OnPropertyChanged);
     textBox3.DataBindings.Add("Text", customers, "Postcode", true, DataSourceUpdateMode.OnPropertyChanged);
     textBox4.DataBindings.Add("Text", customers, "Credit_Balance", true, DataSourceUpdateMode.OnPropertyChanged);
     textBox5.DataBindings.Add("Text", customers, "Savinig_Balance", true, DataSourceUpdateMode.OnPropertyChanged);
}

使用数据绑定,如果需要更改某个字段的内容,可以使用按钮更新或简单地将DataSourceUpdateMode设置为OnPropertyChange,每次更改其中一个文本框中的文本时,它都会更新数据源(在本例中为列表)。您可以单独定义绑定对象,然后将其添加到textbox.DataBindings,这样您就可以对其进行格式化和解析,但这里我只是为了演示而直接添加了它们:

List<Customer> customers;

public Form1()
{
     InitializeComponent();

     //you could add the Customers directly to the add method of the list.
     Customer c1 = new Customer("Sibel Yilmaz", "Wollongong", 2500, 3000, 5000);
     Customer c2 = new Customer("John Doe", "Figtree", 2547, 2500, 3655);
     Customer c3 = new Customer("Mariah Moore", "Coniston", 2500, 7000, 36000);
     Customer c4 = new Customer("Jessica Blackshaw", "Bellambi", 3500, 6000, 4750);
     Customer c5 = new Customer("Suzan Yilmaz", "Wollongong", 2500, 2000, 47110);

     customers = new List<Customer>();

     customers.Add(c1);
     customers.Add(c2);
     customers.Add(c3);
     customers.Add(c4);
     customers.Add(c5);

     textBox1.DataBindings.Add("Text", customers, "Name",true,DataSourceUpdateMode.OnPropertyChanged);
     textBox2.DataBindings.Add("Text", customers, "Suburb", true, DataSourceUpdateMode.OnPropertyChanged);
     textBox3.DataBindings.Add("Text", customers, "Postcode", true, DataSourceUpdateMode.OnPropertyChanged);
     textBox4.DataBindings.Add("Text", customers, "Credit_Balance", true, DataSourceUpdateMode.OnPropertyChanged);
     textBox5.DataBindings.Add("Text", customers, "Savinig_Balance", true, DataSourceUpdateMode.OnPropertyChanged);
}

数据绑定是一种方式。数据绑定是一种方式。