你能在列表框中添加一个新行吗?

时间:2013-12-06 09:25:46

标签: c# listbox

我有3个文本框,当你点击添加时,需要将它们传递给列表框中的1行。

http://i.stack.imgur.com/97CKW.png

但是当我点击列表框上的添加时,它每次都会在新行上显示信息。

我用richtextbox尝试了这个,但是效果不好。我也做了一些研究,发现它可以在列表框中,但你需要在我的代码中添加一些内容。

到目前为止我的代码:

private void btnAdd_Click(object sender, EventArgs e)
{
    decimal iQuantity;
    decimal iPrice;
    decimal Fullprice = 0;

    string Product = cmbItem.Text;
    string Quantity = txtQuantity.Text;
    string Price = txtPrice.Text;

    decimal.TryParse(Quantity, out iQuantity);
    decimal.TryParse(Price, out iPrice);

    if (iQuantity <= 0)
    {
        MessageBox.Show("Please enter Quantity larger than 0", "Quantity", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    else if (iPrice <= 0)
    {
        MessageBox.Show("Please enter a valid price above 0", "Price", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    else
    {
        Fullprice = iPrice * iQuantity;
        rtbBasket.AppendText(string.Format("{0} {1} £{2} £{3}",Product,iQuantity,iPrice,Fullprice + Environment.NewLine));
    }
}

4 个答案:

答案 0 :(得分:0)

rtbBasket.AppendText(string.Format("{0}   

您遗失了上面的一些代码?

private void btnAdd_Click(object sender, EventArgs e)
{
    decimal iQuantity;
    decimal iPrice;
    decimal Fullprice = 0;

    string Product = cmbItem.Text;
    string Quantity = txtQuantity.Text;
    string Price = txtPrice.Text;

    decimal.TryParse(Quantity, out iQuantity);
    decimal.TryParse(Price, out iPrice);

    if (iQuantity <= 0)
    {
        MessageBox.Show("Please enter Quantity larger than 0", "Quantity", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    else if (iPrice <= 0)
    {
        MessageBox.Show("Please enter a valid price above 0", "Price", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    else
    {
        Fullprice = iPrice * iQuantity;
                                                                                    £{2}                           £{3}",Product,iQuantity,iPrice,Fullprice + Environment.NewLine));
    }

rtbBasket.AppendText(Product + " " + Quantity + " " Price);


}

答案 1 :(得分:0)

您可以构建一个字符串,然后将其传递给列表框的items集合。

结帐:http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.items(v=vs.110).aspxhttp://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.items(v=vs.110).aspx

希望这会有所帮助,并且下次尝试解决它并寻找参考(谷歌可能)。

答案 2 :(得分:0)

好的,你只需这样做

ListBox listBox1 = new ListBox();

for(int x = 1; x&lt; = 50; x ++)

{

  listBox1.Items.Add("Item " + x.ToString());

}

答案 3 :(得分:0)

这是开始面向对象编程的一个很好的例子。您可以通过listbox1.Items.Add(string)将项目作为字符串添加到列表框中。

但最佳做法是使用自定义项目类来存储您的商品信息 在BindingList中使用这些项并将其绑定到ListBox。这将使删除或编辑项目变得更加容易。

 public class CustomItem 
 {

    private string sProduct;
    public string Product
    {
      get { return sProduct; }
      set { sProduct = value; }
    }

    // i used int instead of string here
    private int nQuantity;
    public int Quantity
    {
      get { return nQuantity; }
      set { nQuantity = value; }
    }
    // i used double instead of string here    
    private double dPrice;
    public double Price
    {
      get { return dPrice; }
      set { dPrice = value; }
    }

    // simple constructor
    public CustomItem(string sProduct, int nQuantity, double dPrice)
    {
      this.Product = sProduct;
      this.Quantity = nQuantity;
      this.Price = dPrice;
    }

    // the listbox will use this method to show the item
    public override string ToString()
    {
      return sProduct + " " + nQuantity.ToString() + " " + dPrice.ToString() ;
    }
  }

示例如何使用带有列表框和按钮的简单形式添加

using System.ComponentModel;    
//...
public partial class Form1 : Form
{

    // declare your custom binding list 
    BindingList<CustomItem> myList = null;

    public Form1()
    {
      InitializeComponent();

      // initialize your list.
      myList = new BindingList<CustomItem>();    
      // binding your list to your listbox                 
      listBox1.DataSource = myList;
    }


    // a simple button to add items, parse your values here
    private void button1_Click(object sender, EventArgs e)
    {
      myList.Add(new CustomItem("Productname",10, 24.99));           
    }


  }

更好的方法是使用listview或datagridview。 datagridview将工作类似listview有点棘手。