通过更改 checkedlistBox C' 中的选中项来更新变量

updat a Variable by change the checked Items in checkedlistBox C'

我有两个表单,第一个表单有一个数组变量,seconf 表单中有 CheckedlistBox。

 public partial class FormDiagramm : Form{
 DiagramAuswählen DA= new DiagramAuswählen();
 int c =DA.i_wahl[0]
 int c1 =DA.i_wahl[1]
 int c2 =DA.i_wahl[2]
 int c3 =DA.i_wahl[3]}

如何更改 i_wahl[0]、i_wahl[1]、i_wahl[2] 和 i_wahl[3] 的值。 通过更改检查列表框中的检查项目

 public partial class DiagrammAuswählen : Form
{
    public int[] i_wahl = new int[4];

    public void CLB_Spannung_ItemCheck(object sender, ItemCheckEventArgs e)
    {
     if(e.NewValue == CheckState.Checked)
        {
            dd();
        }
     }
     public void dd()
    {
        int index_1 = 0;
        i_wahl[0] = 0;
        i_wahl[1] = 1;
        i_wahl[2] = 2;
        i_wahl[3] = 3;
        for (int index = 0; index < 19; index++)
        {

            if (CLB_Spannung.GetItemCheckState(index) == CheckState.Checked)
            {
                i_wahl[index_1] = index;
                index_1++;
                if (index_1 > 3)
                {
                    goto End_Wahl;
                }
            }
        }
    End_Wahl:;
    }

How could I do this??

用两种形式创建一个新项目。 Form1 应有 1 个按钮。 Form2 应有 1 个 datagridview

Form1.cs

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

        private void button1_Click(object sender, EventArgs e)
        {
            var ps = new List<Person>()
            {
                new Person(){ Active = true, FirstName = "John" },
                new Person(){ Active = false, FirstName = "Jane" },
            };

            new Form2(ps).ShowDialog();

            foreach (var p in ps)
                MessageBox.Show($"{p.FirstName} is {p.Active}");
        }
    }

    public class Person
    {
        public bool Active { get; set; }
        public string FirstName { get; set; }
    }
}

Form2.cs

namespace WinFormsApp472
{
    public partial class Form2 : Form
    {
        public Form2(List<Person> x)
        {
            InitializeComponent();

            dataGridView1.DataSource = x;
        }
    }
}

我会加一些解释,但真的没有太多要解释的; Form2 通过构造函数接受列表,将其绑定到网格。网格可用于更改选择。关闭后,MessageBoxes 证明 Form1 已更改值