【问题标题】:can't add checked item checkedlistbox form1 to listbox form2无法将选中的项目checkedlistbox form1添加到列表框form2
【发布时间】:2012-11-21 13:53:53
【问题描述】:

我有 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();
    }
} 

Form2

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

【问题讨论】:

    标签: c# winforms


    【解决方案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);
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      有一些问题。

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

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

      而且我不认为 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;
          }
      } 
      

      Form2

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-04
        • 2014-06-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多