【发布时间】:2018-11-30 04:50:41
【问题描述】:
我有 Form1(主窗体),我在 ListView 中加载了在 Form2 中创建的产品列表。我创建了一个上下文菜单条,当我从 listView 中选择一行并在该上下文菜单中选择 Edit 选项时,Form2 会显示出来,并且我用来创建产品的所有文本框都使用 I 行中包含的值完成在 ListView 中选择。
我想要做的是能够编辑使用 Form2 中的文本框选择的行的一个或多个值,然后将更新的产品列表发送回 Form1 以在不更改行顺序的情况下显示就像我先删除该行,然后再次添加它,但更新了。
谢谢。这就是我迄今为止在 Form2 中取得的成就:
private void button3_Click(object sender, EventArgs e)
{
if (textBox2_nume.Text == "") errorProvider1.SetError(textBox2_nume, "Introduceti numele");
else if (textBox3_units.Text == "") errorProvider1.SetError(textBox3_units, "Introduceti units");
else if (textBox4_price.Text == "") errorProvider1.SetError(textBox4_price, "enter price");
else if (comboBox1_supID.Text == "") errorProvider1.SetError(comboBox1_supID, "Select sup id");
else
try
{
// Product pSelected;
foreach (Product p in prodList)
{
if (p.Id == Convert.ToInt32(textBox1__id.Text))
{
// p.Id = Convert.ToInt32(textBox1__id.Text);
p.Nume = textBox2_nume.Text;
p.Units = Convert.ToInt32(textBox3_units.Text);
p.Price = Convert.ToDouble(textBox4_price.Text);
p.SupplierId = Convert.ToInt32(comboBox1_supID.Text);
}
}
MessageBox.Show("Produs modificat cu succes");
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
textBox1__id.Clear();
textBox2_nume.Clear();
textBox4_price.Clear();
textBox3_units.Clear();
errorProvider1.Clear();
comboBox1_supID.ResetText();
}
}
private void button2_Click(object sender, EventArgs e)
{
Form1 frm = new Form1();
frm.productlist = prodList;
frm.Show();
}
这就是我如何使用在 Form2 中创建的产品列表填充 Form1 中的 listView,然后发送到 Form1:
private void button2_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
foreach (Product p in productlist)
{
ListViewItem itm = new ListViewItem(p.Id.ToString());
itm.SubItems.Add(p.Nume);
itm.SubItems.Add(p.Units.ToString());
itm.SubItems.Add(p.Price.ToString());
itm.SubItems.Add(p.SupplierId.ToString());
listView1.Items.Add(itm);
}
}
【问题讨论】:
标签: c# winforms listview textbox