以其他形式获取组合框的价值C#

时间:2018-06-28 10:19:05

标签: c# combobox

我尝试以另一种形式获取ComboBox的值,但是我什么也没有。

当我在MessageBox上使用Form1并具有选定的值时,我确实得到了以前的值。

Form2上尝试时,我得到一个空白的MessageBox,因此无法使用“ IF”语句获取所需的数据。

Form1:

namespace ScoreDuizenden
{
    public partial class AantalSpelers : Form
    {
        public AantalSpelers()
        {
            InitializeComponent();
        }

        public string si;
        public void AantalSpelers_Load(object sender, EventArgs e)
        {
            NaamSpelers ns = new NaamSpelers();
            cbAantalSpelers.Items.Add("2");
            cbAantalSpelers.Items.Add("3");
            cbAantalSpelers.Items.Add("4");

        }
        public void btnDoorgaan_Click(object sender, EventArgs e)
        {
            si = cbAantalSpelers.Text;
            NaamSpelers ns = new NaamSpelers();
            ns.Show();
            this.Hide();
        }
    }
}

Form2:

namespace ScoreDuizenden
{
    public partial class NaamSpelers : Form
    {
        public NaamSpelers()
        {
            InitializeComponent();
        }
        AantalSpelers asp = new AantalSpelers();

        private void NaamSpelers_Load(object sender, EventArgs e)
        {
            if (asp.cbAantalSpelers.Text == "2")
            {
                label3.Hide();
                label4.Hide();
                txtNaam3.Hide();
                txtNaam4.Hide();
                btnAsDoorgaan.Location = new Point(16, 62);
                this.Size = new Size(198, 130);
            }
            if (asp.cbAantalSpelers.Text == "3")
            {
                label4.Hide();
                txtNaam4.Hide();
                btnAsDoorgaan.Location = new Point(16, 88);
                this.Size = new Size(198, 157);
            }
        }

        private void NaamSpelers_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }

        private void btnAsDoorgaan_Click(object sender, EventArgs e)
        {
            MessageBox.Show(asp.si);
        }
    }
}

希望您能帮我解决我做错的事情。

1 个答案:

答案 0 :(得分:-1)

请参见下面的代码

表格1:

namespace ScoreDuizenden
{
    public partial class AantalSpelers : Form
    {
        public AantalSpelers()
        {
            InitializeComponent();
        }

        public string si;
        public void AantalSpelers_Load(object sender, EventArgs e)
        {
            NaamSpelers ns = new NaamSpelers();
            cbAantalSpelers.Items.Add("2");
            cbAantalSpelers.Items.Add("3");
            cbAantalSpelers.Items.Add("4");

        }
        public void btnDoorgaan_Click(object sender, EventArgs e)
        {
            si = cbAantalSpelers.Text;
            NaamSpelers ns = new NaamSpelers(si); // passing value to form through constructor
            ns.Show();
            this.Hide();
        }
    }
}

表格2:

    namespace ScoreDuizenden
    {
        public partial class NaamSpelers : Form
        {
            private string cbAntalSpelers = string.Empty; // class level field to store combo value
            public NaamSpelers(string cboValue)  // combo value need to be passed to this form whenever a new instance is created
            {
                InitializeComponent();
                this.cbAntalSpelers = cboValue;
            }

            ....
        }
    }