[英]I want to update my listbox but it doesn't work
我尝试将Form2中的数据检索到,但在Form2中没有显示任何内容:单击更新按钮时,它只是向我显示空白Form2:
我正在做的Form1:
ProductList products = new Prod
private void button2_Click(object sender, EventArgs e)
{
int i = this.lstPerson.SelectedIndex;
Product product = products[i];
Form2 frmUpdate = new Form2();
product = frmUpdate.GetNewProduct();
products[i] = product;
products.Add(product);
FillProductListBox();
}
private void FillProductListBox()
{
lstPerson.Items.Clear();
foreach (Product p in products)
lstPerson.Items.Add(p.GetDisplayText("\t"));
}
在产品类别中:
public class Product
{
private string firstname;
private string lastname;
private string email;
public Product()
{
}
public Product(string firstname, string lastname, string email)
{
this.Firstname = firstname;
this.Lastname = lastname;
this.Email = email;
}
public string Firstname
{
get
{
return firstname;
}
set
{
firstname = value;
}
}
public string Lastname
{
get
{
return lastname;
}
set
{
lastname = value;
}
}
public string Email
{
get
{
return email;
}
set
{
email = value;
}
}
public virtual string GetDisplayText(string sep)
{
return Firstname + sep + Lastname + sep + Email;
}
}
图书类:私人双重评估等级; 私人双重作业等级;
public Book()
{
}
public Book(string firstname, string lastname, double assessmentGrade,double assignmentGrade,
string email) : base(firstname, lastname, email)
{
this.AssessmentGrade = assessmentGrade;
this.AssignmentGrade = assignmentGrade;
}
public double AssignmentGrade
{
get
{
return assignmentGrade;
}
set
{
assignmentGrade = value;
}
}
public double AssessmentGrade
{
get
{
return assessmentGrade;
}
set
{
assessmentGrade = value;
}
}
public override string GetDisplayText(string sep)
{
return base.GetDisplayText(sep) + " (" + AssessmentGrade + ")" + AssignmentGrade;
}
与软件类相同。
在Form2中
private Product product = null;
public Product GetNewProduct()
{
this.ShowDialog();
return product;
}
private void btnSave_Click(object sender, System.EventArgs e)
{
if (IsValidData())
{
if (rbBook.Checked)
product = new Book(txtName.Text, txtLName.Text,
Convert.ToDouble(txtAssessGrade.Text), Convert.ToDouble(txtAssigGrade.Text), txtEmail.Text);
else
product = new Software(txtName.Text, txtLName.Text,
Convert.ToInt32(txtAssessGrade.Text), txtEmail.Text);
this.Close();
}
}
我什么也没告诉我,只是在列表框中添加更多数据,不更新数据,也不在Form2中检索数据。您能告诉我怎么做吗?
//in Form2
public partial class Form2 : Form
{
private Product product = null;
public Form2()
{
InitializeComponent();
}
public Product GetNewProduct()
{
return product;
}
private void btnSave_Click(object sender, System.EventArgs e)
{
if (IsValidData())
{
if (rbBook.Checked)
{
product = new Book(txtName.Text, txtLName.Text,
Convert.ToDouble(txtAssessGrade.Text), Convert.ToDouble(txtAssigGrade.Text), txtEmail.Text);
this.Close();
}
}
}
private bool IsValidData()
{
return true;
}
}
//Modify in Form1:
public partial class Form1 : Form
{
private ArrayList products = new ArrayList();
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frmUpdate = new Form2();
frmUpdate.ShowDialog();
Product product = frmUpdate.GetNewProduct();
products.Add(product);
FillProductListBox();
}
private void FillProductListBox()
{
lstPerson.Items.Clear();
foreach (Product p in products)
lstPerson.Items.Add(p.GetDisplayText("\t"));
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.