我目前有两种表单,一种用于在从列表框中选择用户时显示信息(列表框列出名称,选择时它将填充我拥有的几个文本框,一个用于城市,另一个用于地址),第二个表单允许我输入用户的信息,当我单击“提交”时,这些信息将显示在 form1 上的列表框中。目前,我可以将第二个表单中的用户添加到第一个表单中的列表框中,但是每当我在列表框中单击他们的姓名时,我都会在文本框中填写他们的信息时遇到问题。截至目前,我已经尝试实现不同的代码片段,但作为初学者,我不确定如何执行此操作。我的第一个表格如下 public Form1(){ InitializeComponent();}private void ButtonAddUser_Click(object sender, EventArgs e){ Form2 form = new Form2(textBoxFirstName.Text, listBoxUsers); form.Owner = this; form.ShowDialog(); form.Show();}private void listBoxUser_SelectedIndexChanged(object sender, EventArgs e){ if (listBoxUser.SelectedIndex != -1) { User selected = (User)listBoxUser.SelectedItem; textBoxStreet.Text = selected.Street; textBoxCity.Text = selected.City; }}我添加用户信息的第二个表单如下public partial class Form2 : Form{ private ListBox _listBoxUsers; public Form(string value, ListBox listBoxUser) { InitializeComponent(); value=($"{textBoxFirstName.Text} {textBoxLastName.Text}"); _listBoxUsers = listBoxUsers; } private void ButtonSubmit_Click(object sender, EventArgs e) { _listBoxUsers.Items.Add($"{textBoxFirstName.Text} {textBoxLastName.Text}"); this.Close(); }}以及我试图存储文本框信息的班级public class User : EventArgs{ public string Street {get; set;} public string City {get;set;} public User(string street, string city) { Street = street; City = city; }}简而言之:我试图将第二个表单中的信息保存到我的类中,当我从列表框中选择一个用户时,它将在文本框中显示他的街道和城市(我的列表框和文本框都在我的第一个表单上。)。谢谢你的帮助
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
在第二种形式中,您应该创建 User 对象并填写街道和城市等详细信息。
private void ButtonSubmit_Click(object sender, EventArgs e)
{
User user = new User(textBoxFirstName.Text, textBoxLastName.Text);
_listBoxUsers.Items.Add(user);
this.Close();
}
由于 Listbox.Items 需要对象类型,因此您可以添加从 System.Object 派生的任何内容。但在 form1 中,您创建了包含用户对象的列表,并且在选定的索引更改期间,您将类型转换为用户对象。但在 form2 中,您在单击提交按钮期间并未实际插入 User 对象。
因此,我认为您面临这个问题。尝试使用上面的代码并检查
- 1 回答
- 0 关注
- 95 浏览
添加回答
举报
0/150
提交
取消