基于选择其他组合框来更改组合框的显示

时间:2018-11-27 07:57:28

标签: c# winforms combobox

我在combox中有两个datagrid。一个组合是主要类别,其他组合是子类别。 我认为当我选择主类别时,在组合子类别中,我只会看到我选择的主类别的子类别。

我该怎么办?

public partial class Form4 : System.Windows.Forms.Form
{
    SqlConnection con = new SqlConnection(@"Data Source=DEV6-PC; Initial 
    Catalog=Tak_Net;Integrated Security=True;");

    DataTable dt = new DataTable();
    DataTable dt1 = new DataTable();

    public Form4()
    {
        InitializeComponent();
    }

    private void Form4_Load(object sender, EventArgs e)
    {
        dataGridView1.DataSource = loadData().Tables[0];
        addCombo();
        addCombo2();

    }
    private DataSet loadData()
    {
        con.Open();
        SqlDataAdapter adapter = new SqlDataAdapter();
        SqlCommand cmd;
        DataSet ds = new DataSet();
        //DataSet ds1 = new DataSet();

        //SELECT STMTS

        string Final = "SELECT Counter,DATE,V_BizName,Cost,PaymentCost,Notes 
        FROM dbo.Final_Cat_Global ";
        string P_Cat = "SELECT distinct Cat FROM dbo.P_Cat";
        string P_SubCat = "SELECT  SubCat FROM dbo.P_Cat where 
        isnull(SubCat,'')<>''";

        //Final TABLE

        cmd = new SqlCommand(Final, con);
        adapter.SelectCommand = cmd;
        adapter.Fill(ds, "Final");

        //P_Cat TABLE
        adapter.SelectCommand.CommandText = P_Cat;
        adapter.Fill(ds, "P_Cat");

        //P_SubCat TABLE
        adapter.SelectCommand.CommandText = P_SubCat;
        adapter.Fill(ds, "P_SubCat");

        dt = ds.Tables[1];
        dt1 = ds.Tables[2];

        return ds;

    }

    //COMBO COLUMN
    public void addCombo()
    {
        //ADD COLUMNS
        DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
        combo.HeaderText = "P_Cat";
        combo.Name = "combo";

        ArrayList row = new ArrayList();

        //FILL ARRAYLIST FROM DATATABLE
        foreach (DataRow dr in dt.Rows)
        {
            row.Add(dr["Cat"].ToString());
        }
        //ADD TO COMBO
        combo.Items.AddRange(row.ToArray());

        //ADD THE COMBO TO DATAGRIDVIEW
        dataGridView1.Columns.Add(combo);

    }

    //COMBO COLUMN
    public void addCombo2()
    {
        //ADD COLUMNS
        DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
        combo.HeaderText = "P_SubCat";
        combo.Name = "combo1";

        ArrayList row = new ArrayList();

        //FILL ARRAYLIST FROM DATATABLE
        foreach (DataRow dr in dt1.Rows)
        {
            row.Add(dr["SubCat"].ToString());

        }
        //ADD TO COMBO
        combo.Items.AddRange(row.ToArray());

        //ADD THE COMBO TO DATAGRIDVIEW
        dataGridView1.Columns.Add(combo);

    }

}

我尝试在主猫组合上捕捉所选项目,但我没有成功。 有人可以帮我吗?

0 个答案:

没有答案