2012-11-21 57 views
1

我有2个窗体form1和form2。我想从checkedlistbox1(form1)添加选中项目到列表框(form2)当我点击button2。我怎样才能做到这一点无法添加选中项目checkedlistbox form1到列表框2

Form1中

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); 
     } 
    } 
} 

回答

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); 
     } 
    } 
} 
+0

谢谢你,我做到了 –

+0

不客气,请接受答案,如果它帮助你 –

0

存在一些问题。

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

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

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

最好尝试这样的事:

Form1中

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); 
     } 
    } 
} 

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

+0

而我不认为checkedListBox1.CheckedItems是一个字符串列表... – Karl