我正在尝试将一个表单中的集合添加到另一个表单的列表框中。
我有两种形式,MainForm
和StaffForm
。
在StaffForm
中,用户可以添加名称和资格,然后可以选择确定或 Cansel 即可。
如果用户点击“确定”,则会在MainForm
。
这是我尝试的方式。
这是我的StaffForm
:
public partial class StaffForm : Form
{
private Staff m_staff;
ListManager<Staff> m_qualifications = new ListManager<Staff>();
public StaffForm()
{
InitializeComponent();
if (m_staff == null)
m_staff = new Staff();
}
public Staff Staff
{
get { return m_staff; }
set { m_staff = value; }
}
private void ReadValues(Staff staff)
{
staff.Qualifications.Add(qualificationtxt.Text);
}
public void UpdateResults()
{
Resultlst.Items.Clear(); //Erase current list
//Get one elemnet at a time from manager, and call its
//ToString method for info - send to listbox
for (int index = 0; index < m_qualifications.Count; index++)
{
Staff staff = m_qualifications.GetAt(index);
//Adds to the list.
Resultlst.Items.Add(staff);
}
}
private void OKbtn_Click(object sender, EventArgs e)
{
this.Close();
}
private void Addbtn_Click_1(object sender, EventArgs e)
{
Staff n_staff = new Staff();
m_qualifications.Add(n_staff);
ReadValues(n_staff);
UpdateResults();
}
}
以下是MainForm
:
public MainForm()
{
//Visual Studio initializations
InitializeComponent();
private void staffbtn_Click(object sender, EventArgs e)
{
StaffForm staffForm = new StaffForm();
if(staffForm.ShowDialog() == DialogResult.OK)
{
foodItemslst.Items.Add(staffForm.Staff.ToString());
MessageBox.Show(staffForm.Staff.ToString());
}
}
StaffManager
中的集合正在运作。问题是将其发送到MainForm
我没有收到任何错误。当用户单击“确定”时,列表框中没有任何操作。