-3

我再次需要你的帮助..我正在执行这个程序,如果选中了 Form2.cs 中的复选框,那么我将单击一个按钮以显示另一个 WindowsForm(另一个 Form.cs),该列表框将显示来自该复选框的文本. 这是我在另一个 form.cs 上的工作

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication7
{
    public partial class computationOfDineIn : Form
    {

        Form2 form2 = new Form2();

        public computationOfDineIn()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            if (form2.checkBox1.Checked)
            {

                listBox1.Items.Add(form2.checkBox1.Text.ToString());

            }


        }


    }
}

我将 Form2.cs 中复选框的修饰符更改为 Public,以便我可以在另一种形式中使用它。但它不起作用,我错过了什么吗?请有人告诉我。(Q. how can i make it appear in the listbox from another form when the conditions is met?)我知道这是一个愚蠢的问题,但提前谢谢你!!!:D

更新:Form2 显示位置的代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

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

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


            form2.Show();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form3 form3 = new Form3();
            form3.Show();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
    }
}
4

1 回答 1

0

看来您正在创建Form2inside的新实例computationOfDineIn。您应该使用向用户显示的相同的 form2 实例。

并且不推荐公开 UI 元素。IMO 你必须创建一个属性来说明复选框是否被选中。

您需要将form2实例保存在某处,并且您需要以某种方式将实例传递给computationOfDineIn表单,然后检查该实例中的属性。

一种方法是通过构造函数传递它。

public partial class computationOfDineIn : Form
{
    Form2 form2 = null;

    public computationOfDineIn(Form2 form2)//pass the form2 you created in button click
    {
        this.form2 = form2;
        InitializeComponent();
    }
}
于 2013-09-01T12:27:55.967 回答