我正在尝试使用文本框+按钮更新.csv文件的列表框输出。我应该使用TryParse来更新列表框中所选项目的“数量”。我不确定如何实现TryParse并更新列表框中的“数量”值。
这是我为按钮编码的内容:
decimal value1;
private void updateSoldQtyButton_Click(object sender, EventArgs e)
{
if (this.outputListBox.SelectedIndex == -1) //checks if an item in the listbox has been selected
{
MessageBox.Show("Please selected an inventory item to increment sold qty");
} else if (qtySoldTextBox.Text == "")
{
MessageBox.Show("Please input a numerical value in the corresponding text box");
} else if (!decimal.TryParse(qtySoldTextBox.Text, out value1))
{
}
}
以下是.csv如何加载到列表框中:
private void InvLoad(Inventory InventoryItems) //method
{
OpenFileDialog file = new OpenFileDialog();
if (file.ShowDialog() == DialogResult.OK)
{
try //try catch
{
List<Inventory> InventoryList = new List<Inventory>();
StreamReader ipFile = File.OpenText("inventory_ip.csv"); //input file is the csv
outputListBox.Items.Clear(); //clear listbox
ipFile.ReadLine(); //skips the first line
while (!ipFile.EndOfStream)
{
string[] items; //tokenize
string itemz = ipFile.ReadLine();
items = itemz.Split(','); //, splits the text into columns
Inventory InvList = new Inventory();
//fields
InvList.ID = items[0];
InvList.ItemName = items[1];
InvList.StartingQty = int.Parse(items[2]);
InvList.MinRestockQty = int.Parse(items[3]);
InvList.SoldQty = int.Parse(items[4]);
InvList.RestockedQty = int.Parse(items[5]);
InvList.UnitPrice = decimal.Parse(items[6]);
//formatted string
string invOp = InvList.ID.PadRight(12, ' ') +
InvList.ItemName.PadRight(23, ' ') +
InvList.StartingQty.ToString().PadRight(10, ' ') +
InvList.MinRestockQty.ToString().PadRight(10, ' ') +
InvList.SoldQty.ToString().PadRight(10, ' ') +
InvList.RestockedQty.ToString().PadRight(10, ' ') +
InvList.UnitPrice.ToString("c").PadRight(10, ' ');
InventoryList.Add(InvList);
outputListBox.Items.Add(invOp); //output string invOP to listbox
}
} catch (Exception ex)
{
MessageBox.Show(ex.Message); //exception msg
}
}
}
答案 0 :(得分:0)
您可以使用
else if (!qtySoldTextBox.Text == decimal.TryParse(qtySoldTextBox.Text))
在你的第一个,如果,然后
else if (qtySoldTextBox.Text == decimal.TryParse(qtySoldTextBox.Text))
在第二个。 如果不解析,第一个命中为true。如果第二次变为真,您可以更新数量。 然后只需更新您的消息以反映发生的情况。