Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用按钮“下一步”和“上一步”列出_C# - Fatal编程技术网

C# 使用按钮“下一步”和“上一步”列出

C# 使用按钮“下一步”和“上一步”列出,c#,C#,这是我在列表中使用的代码,用于循环列表: public List<String> InfoList = new List<String>(); int i = 0; private void populatelblDesc() { conn.Open(); string query; query = "select distinct dp.current_location_code,dci.dest_locatio

这是我在列表中使用的代码,用于循环列表:

public List<String> InfoList = new List<String>();
int i = 0;

private void populatelblDesc()
    {
        conn.Open();
        string query;
        query = "select distinct dp.current_location_code,dci.dest_location_code,dps.order_no,dps.carton_code,dps.company_id_no,dps.no_of_full_cartons,dps.no_of_total_packs,dg.dc_grv_id_no,dg.start_rcv_datetime,s.sku_code,(pt.product_type_desc|| ' ' ||ps.prod_size_desc|| ' ' ||c.colour_desc) product_desc from dc_pallet_stock dps,dc_pallet dp,sku s,purch_order_carton_sku pocs,dc_crane_instruc dci,dc_grv dg,product_type pt,prod_size ps,colour c where dp.pallet_id_no = dps.pallet_id_no and dps.order_no = pocs.order_no and dps.company_id_no = pocs.company_id_no and dps.carton_code = pocs.carton_code and s.sku_id_no = pocs.sku_id_no and s.company_id_no = dps.company_id_no and dp.pallet_id_no ='"+palletId+"' and dci.pallet_id_no(+) = dps.pallet_id_no and dg.dc_grv_id_no = dps.dc_grv_id_no and s.prod_size_id_no = ps.prod_size_id_no(+) and s.colour_id_no = c.colour_id_no(+) order by sku_code";
        OracleCommand cmd = new OracleCommand(query, conn);
        OracleDataReader dr = cmd.ExecuteReader();
        while (dr.Read())
        {
            this.InfoList.Add(dr["current_location_code"].ToString());
            this.InfoList.Add(dr["dest_location_code"].ToString());
            this.InfoList.Add(dr["order_no"].ToString());
            this.InfoList.Add(dr["company_id_no"].ToString());
            this.InfoList.Add(dr["no_of_full_cartons"].ToString());
            this.InfoList.Add(dr["no_of_total_packs"].ToString());
            this.InfoList.Add(dr["dc_grv_id_no"].ToString());
            this.InfoList.Add(dr["start_rcv_datetime"].ToString());
            this.InfoList.Add(dr["sku_code"].ToString());
            this.InfoList.Add(dr["product_desc"].ToString());
        }
        dr.Close();
        conn.Close();
    }
我该如何解决这个问题。我已经尝试了我能想到的一切


提前感谢。

假设您在表单上有所有标签,并且它们都有名称lbl#,那么您可以这样做,以获取所有标签,并按名称排序:

private void button1_Click(object sender, EventArgs e)
{
    int i = 0;
    foreach (Label l in this.Controls
                            .OfType<Label>()
                            .OrderBy(l => int.Parse(l.Name.Substring(3))))
    {
        if (i < InfoList.Count)
            l.Text = InfoList[i++];
    }
}

也许您可以检查一下,如果
i>0
将有太多的建议来改进此代码。对于异常,请检查
if(this.InfoList.Count==0)
private void button2_Click(object sender, EventArgs e)
    {
        populatecompany_name();

        if (i - 1 < this.InfoList.Count)
            lbl9.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl8.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl7.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl6.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl5.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl4.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl3.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl2.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl1.Text = this.InfoList[--i];
        if (i - 1 < this.InfoList.Count)
            lbl10.Text = this.InfoList[--i];
    }
ArgumentOutOfRangeException was unhandles - Specified argument was out of the range of valid values.
Parameter name: index
private void button1_Click(object sender, EventArgs e)
{
    int i = 0;
    foreach (Label l in this.Controls
                            .OfType<Label>()
                            .OrderBy(l => int.Parse(l.Name.Substring(3))))
    {
        if (i < InfoList.Count)
            l.Text = InfoList[i++];
    }
}
public partial class Form1 : Form
{
    List<string> InfoList = new List<string> 
            { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
    const int labelNameLen = 3;

    public Form1() { InitializeComponent(); }

    private IEnumerable<Label> Labels
    {
        get
        {
            return this.Controls
                       .OfType<Label>()
                       .OrderBy(l => int.Parse(l.Name.Substring(labelNameLen)));
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        int i = 0;
        foreach (Label l in Labels)
        {
            if (i < InfoList.Count)
                l.Text = InfoList[i++];
        }
    }

    private void button2_Click(object sender, EventArgs e)
    {
        int i = InfoList.Count;
        foreach (Label l in Labels)
        {
            if (i > 0)
                l.Text = InfoList[--i];
        }
    }
}