我有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));
}
}
答案 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).aspx 和 http://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有点棘手。