【发布时间】:2023-03-25 10:45:01
【问题描述】:
我在 C# Windows 窗体应用程序中有一个项目,在我的项目中我有 2 个屏幕,1 - ListView 显示数据,2 - 获取信息并放在 ListView 上的公式,主要问题是将信息从 Form2 传递到表格1。
我的逻辑:
- 在 Form2 上从用户那里获取信息并传递给其他类
- 在 Form1 上从其他类获取信息并添加到 ListView
问题:
- 对象种类
ListViewItem返回null
Form2:从Form中获取信息
namespace Company
{
public partial class Register : Form
{
EmployeeDAO employeeDAO = new EmployeeDAO();
public Register()
{
InitializeComponent();
}
private void btnRegister_Click(object sender, EventArgs e)
{
Employee employee = new Employee();
employee.idEmployee = Convert.ToInt16(this.txtId.Text);
employee.nameEmployee = this.txtName.Text;
employeeDAO.insert(employee);
}
}
}
我的 DAO 类从 Form2 获取信息并传递给 Form1:(我获取信息并放置一个 ListViewItem 并返回它)
namespace Company
{
class EmployeeDAO
{
ListViewItem item = new ListViewItem();
public void insert(Employee employee)
{
string id;
string name;
id = Convert.ToString(employee.idEmployee);
name = employee.nameEmployee;
String[] row = { id, name };
item = new ListViewItem(row);
}
public ListViewItem read()
{
//This item are returning null
return item;
}
}
}
Form1 在 ListView 上显示数据:(我得到 ListViewItem 对象并添加到 ListView)
namespace Company
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
lstEmployee.View = View.Details;
lstEmployee.FullRowSelect = true;
lstEmployee.Columns.Add("ID", 150);
lstEmployee.Columns.Add("Nome", 150);
insert();
}
private void insert()
{
EmployeeDAO employeeDAO = new EmployeeDAO();
ListViewItem item = employeeDAO.read();
if (item == null)
{
//Always this block run
MessageBox.Show("No Item");
return;
}
else
{
MessageBox.Show("Item");
lstEmployee.Items.Add(item);
}
}
private void btnRegister_Click(object sender, EventArgs e)
{
Register register = new Register();
register.Show();
this.Hide();
}
}
}
谁能解释一下如何做到这一点,如果是正确的方法? PS:我是 C# 和 OO 的新手。
【问题讨论】: