从另一个表单添加组合框项不工作

本文关键字:工作 组合 另一个 表单 添加 | 更新日期: 2023-09-27 18:14:18

我想从form2中添加一个项目到form1的组合框。但如果我按下按钮,form2关闭,但项目没有添加到form1中。我希望你能帮助我!我在网上找不到解决这个问题的方法。

形式2:

public void button5_Click(object sender, EventArgs e)
{
    Form1 main = new Form1();
    main.AddItem("Item");
    this.Close();
}

形式1:

public void AddItem(object item)
{
    comboBox1.Items.Add(item);
}

从另一个表单添加组合框项不工作

首先:您必须将comboBox访问修饰符更改为public。然后:

形式2:

public void button5_Click(object sender, EventArgs e)
{
     Form1 main = new Form1();
     main.AddItem("Item");
     this.Hide(); // This will hide Form2 ("this." is redundant)
     main.ShowDialog(); // This will show Form1
}

引用你的'Form1'的name属性不要创建一个新的实例。然后引用窗体组合框控件。

您的原始代码创建一个NEW实例。这意味着它创建了一个新版本的Form1,而不是访问原来的!

下面的代码应该有帮助

  public void button5_Click(object sender, EventArgs e)
        {
          Form1 myForm = whateverYourFormsNamePropertyIs;
          myForm.Combobox.AddItem("Item");
          this.Close();
        }

In form2…

    Form1 f;
    public Form2(Form1 parent)
    {
        InitializeComponent();
        f = parent;
    }
    private void Add_Click(object sender, EventArgs e)
    {
        f.comboBox1.Items.Add("item");
    }
在form1

public void AddItem(object item)
{
  comboBox1.Items.Add(item);
  Form2 f = new Form2(this);
  f.Show();
}

原形

private void FormPeople_Load(object sender, EventArgs e)
    {
        populateComboBoxTitles();
}
public void populateComboBoxTitles()
        {
            comboBox2.Items.Clear();
            comboBox2.Items.Add("mr");
             comboBox2.Items.Add("miss");
}
private void button5_Click(object sender, EventArgs e)
    {
FormAddTitle formAddTitle = new FormAddTitle(this);
        formAddTitle.Show();
}

二次形式

 FormPeople formPeople;
    public FormAddTitle(FormPeople formPeople)
    {
        InitializeComponent();
        this.formPeople = formPeople;
    }
private void button1_Click(object sender, EventArgs e)
    {
if (formPeople != null)
            formPeople.populateComboBoxTitles();
}