1

我有 2 个表格 form1 和 form2。当我单击button2时,我想将checkedlistbox1(form1)中的选中项目添加到列表框(form2)。我怎样才能做到这一点

表格1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2();
        form2.Show();
    }
} 

表格2

public partial class Form2 : Form
{
    public Form2()
    {
        InitializeComponent();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        Form1 form1 = new Form1();
        foreach(string item in form1.checkedListBox1.CheckedItems)
        {
            listBox1.Items.Add(item);
        }
    }
}
4

2 回答 2

1

像这样更改Form1

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 form2 = new Form2(checkedListBox1);
        form2.Show();
    }
} 

表格 2

public partial class Form2 : Form
{
    public Form2(CheckedListBox checkedListBox1)
    {
        InitializeComponent();
        foreach(string item in checkedListBox1.CheckedItems)
        {
            listBox1.Items.Add(item);
        }
    }
}
于 2012-11-21T14:00:12.843 回答
0

有一些问题。

首先,每次按下按钮,都会创建一个新表单。我想你想创建它的一个实例?

第二个问题是,你不能form1.checkedListBox1像这样从 form2 访问。

而且我不认为 checkedListBox1.CheckedItems 是一个字符串列表。也许您想添加项目的文本或值...

最好尝试这样的事情:

表格1

public partial class Form1 : Form
{
    Form2 form2;
    public Form1()
    {
        InitializeComponent();
        form2 = new Form2(this);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        form2.Show();
    }

    public List<string> GetCheckedItems()
    {
        return this.checkedListBox1.CheckedItems;
    }
} 

表格2

public partial class Form2 : Form
{
    Form1 form1;
    public Form2()
    {
        InitializeComponent();
    }

    public Form2(Form1 parentForm)
    {
        InitializeComponent();
        this.form1 = parentForm;
    }

    private void button2_Click(object sender, EventArgs e)
    {
        foreach(string item in form1.GetCheckedItems())
        {
            listBox1.Items.Add(item);
        }
    }
}

我没有检查代码,但它应该是这样的......

于 2012-11-21T14:03:46.833 回答