猿问

表单 2 文本框显示在表单 1 列表框中

我目前有两种表单,一种用于在从列表框中选择用户时显示信息(列表框列出名称,选择时它将填充我拥有的几个文本框,一个用于城市,另一个用于地址),第二个表单允许我输入用户的信息,当我单击“提交”时,这些信息将显示在 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;

  }


}

简而言之:我试图将第二个表单中的信息保存到我的类中,当我从列表框中选择一个用户时,它将在文本框中显示他的街道和城市(我的列表框和文本框都在我的第一个表单上。)。


谢谢你的帮助


米脂
浏览 96回答 1
1回答

元芳怎么了

在第二种形式中,您应该创建 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 对象。因此,我认为您面临这个问题。尝试使用上面的代码并检查
随时随地看视频慕课网APP
我要回答