更改基于textBox值的comboBox值? C#

问题描述

我正在制作PC配置程序,但被卡住了。在第一个表格中,我选择了cpu显示在文本框中的信息,但是在第二个表格中,我选择了MoBo。 cpu信息之一是套接字,它是主板形式上的第一个comboBox。有没有一种方法可以将textBox中的值与该comboBox链接起来?我也使用了sql Studio

我真的需要帮助,我在编程方面很烂,我这样做只是为了不使学期不及格。请帮助我。

This is picture of my code for that comboBox

私有无效MaticnaPloca_Load(对象发送者,EventArgs e) {

        con.open();
        sqlCommand sc = new sqlCommand("SELECT distinct(soket) from MaticnaPloca",con);
        sqlDataReader reader;
        reader = sc.ExecuteReader();
        DataTable dt = new DataTable();
        dt.Columns.Add("soket",typeof(string));
        dt.Load(reader);
        cbSoket.ValueMember = "soket";
        cbSoket.DataSource = dt;
        cbSoket.Selectedindex = -1;
        con.Close();

        con.open();
        sqlCommand sc1 = new sqlCommand("SELECT distinct(proizvodjac) from MaticnaPloca order by Proizvodjac",con);
        sqlDataReader reader1;
        reader1 = sc1.ExecuteReader();
        DataTable dt1 = new DataTable();
        dt1.Columns.Add("proizvodjac",typeof(string));
        dt1.Load(reader1);
        comboBox2.ValueMember = "proizvodjac";
        comboBox2.DataSource = dt1;
        comboBox2.Selectedindex = -1;
        comboBox2.Enabled = false;
        con.Close();

        con.open();
        sqlCommand sc2 = new sqlCommand("SELECT (model) from MaticnaPloca order by model",con);
        sqlDataReader reader2;
        reader2 = sc2.ExecuteReader();
        DataTable dt2 = new DataTable();
        dt2.Columns.Add("model",typeof(string));
        dt2.Load(reader2);
        comboBox3.ValueMember = "model";
        comboBox3.DataSource = dt2;
        comboBox3.Selectedindex = -1;
        comboBox3.Enabled = false;
        con.Close();
        
    }       
            
    private void cbSoket_SelectedindexChanged(object sender,EventArgs e)
    {            
        
        try
        {

            sqlCommand sc = new sqlCommand();
            con.open();           
            if (cbSoket.SelectedValue.ToString() == "1151")
                sc = new sqlCommand("select distinct (proizvodjac) from MaticnaPloca where Soket = '1151'",con);

            else if (cbSoket.SelectedValue.ToString() == "AM4")
                sc = new sqlCommand("select distinct (proizvodjac) from MaticnaPloca where Soket = 'AM4'",con);

            else if (cbSoket.SelectedValue.ToString() == "TR4")
                sc = new sqlCommand("select distinct (proizvodjac) from MaticnaPloca where Soket = 'TR4'",con);

            sqlDataReader reader;
            reader = sc.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Columns.Add("proizvodjac",typeof(string));
            dt.Load(reader);
            comboBox2.ValueMember = "proizvodjac";
            comboBox2.DataSource = dt;
            comboBox2.Selectedindex = -1;
            comboBox2.Enabled = true;
            con.Close();
        }
        catch (Exception)
        {

        }

    }
                          

    private void comboBox2_SelectedindexChanged(object sender,EventArgs e)
    {          
     

        try
        {

            sqlCommand sc = new sqlCommand();
            con.open();

            if (comboBox2.SelectedValue.ToString() == "Asus" && cbSoket.SelectedValue.ToString() == "1151")
                sc = new sqlCommand("select distinct (model) from MaticnaPloca where Proizvodjac = 'Asus' AND Soket = '1151'",con);
            if (comboBox2.SelectedValue.ToString() == "Asus" && cbSoket.SelectedValue.ToString() == "AM4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Asus' AND Soket = 'AM4'",con);
            if (comboBox2.SelectedValue.ToString() == "Asus" && cbSoket.SelectedValue.ToString() == "TR4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Asus' AND Soket = 'TR4'",con);


            if (comboBox2.SelectedValue.ToString() == "Biostar" && cbSoket.SelectedValue.ToString() == "AM4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Biostar' AND Soket = 'AM4' ",con);
            if (comboBox2.SelectedValue.ToString() == "Biostar" && cbSoket.SelectedValue.ToString() == "1151")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Biostar' AND Soket = '1151'",con);


            if (comboBox2.SelectedValue.ToString() == "Gigabyte" && cbSoket.SelectedValue.ToString() == "1151")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Gigabyte' AND Soket = '1151'",con);
            if (comboBox2.SelectedValue.ToString() == "Gigabyte" && cbSoket.SelectedValue.ToString() == "AM4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Gigabyte' AND Soket = 'AM4'",con);
            if (comboBox2.SelectedValue.ToString() == "Gigabyte" && cbSoket.SelectedValue.ToString() == "TR4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'Gigabyte' AND Soket = 'TR4'",con);


            if (comboBox2.SelectedValue.ToString() == "MSI" && cbSoket.SelectedValue.ToString() == "AM4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'MSI' AND Soket = 'AM4'",con);
            if (comboBox2.SelectedValue.ToString() == "MSI" && cbSoket.SelectedValue.ToString() == "TR4")
                sc = new sqlCommand("select distinct(model) from MaticnaPloca where Proizvodjac = 'MSI' AND Soket = 'TR4'",con);


            sqlDataReader reader;
            reader = sc.ExecuteReader();
            DataTable dt2 = new DataTable();
            dt2.Columns.Add("model",typeof(string));
            dt2.Load(reader);
            comboBox3.ValueMember = "model";
            comboBox3.DataSource = dt2;
            comboBox3.Enabled = true;
            con.Close();
        }
        catch (Exception)
        {

        }

解决方法

我也不太了解你想做什么,但我会尝试。

将文本框文本添加到组合框

comboBox1.Items.Add(textBox1.Text);

获取comboBox的值,并在TextBox中显示

int pos = 0; //item position starting from 0 1 2 3 . . . 
textBox1.Text = comboBox1.Items[pos].ToString();