简体   繁体   English

如何刷新组合框WinForm C#

[英]How to refresh combobox winform c#

i create winform with c# that had two combobox 我用有两个组合框的C#创建Winform

The form look like this 表格看起来像这样

combobox1 select company from database combobox1从数据库中选择公司

combobox2 select project from database depend on company from combobox1 combobox2从数据库中选择项目取决于combobox1中的公司

everything ok when the form loaded but i want to refresh combobox2 when i change company in combobox1 加载表格时一切正常,但是当我在combobox1中更改公司时我想刷新combobox2

this is my code 这是我的代码

using System;
using System.Data;
using System.Windows.Forms;
using Oracle.ManagedDataAccess.Client;

namespace WindowsFormsApp3
{
    public partial class Form_AC071503 : Form
    {
        public Form_AC071503()
        {
            InitializeComponent();
        }

        DataSet ds = new DataSet();

        OracleCommand cmd1;
        OracleDataAdapter da1;

        OracleCommand cmd2;
        OracleDataAdapter da2;

        private void Form_AC071503_Load(object sender, EventArgs e)
        {
            cmd1 = new OracleCommand("SELECT company,company_name from COMPANIES", Class_All.Connection);
            da1 = new OracleDataAdapter(cmd1);
            da1.Fill(ds, "COMPANIES");
            input_company.DataSource = ds.Tables["COMPANIES"];
            input_company.DisplayMember = "company_name";
            input_company.ValueMember = "company";

            cmd2 = new OracleCommand("SELECT project,project_name from PROJECTS where COMPANY = '" + input_company.SelectedValue.ToString() + "'", Class_All.Connection);
            da2 = new OracleDataAdapter(cmd2);
            da2.Fill(ds, "PROJECTS");
            input_project.DataSource = ds.Tables["PROJECTS"];
            input_project.DisplayMember = "project_name";
            input_project.ValueMember = "project";
        }

        private void Input_company_SelectedIndexChanged(object sender, EventArgs e)
        {
            /*i try to use the same code in Form_AC071503_Load like this

              cmd2 = new OracleCommand("SELECT project,project_name from PROJECTS where COMPANY = '" + input_company.SelectedValue.ToString() + "'", Class_All.Connection);
              da2 = new OracleDataAdapter(cmd2);
              da2.Fill(ds, "PROJECTS");
              input_project.DataSource = ds.Tables["PROJECTS"];
              input_project.DisplayMember = "project_name";
              input_project.ValueMember = "project";

              but not work because the list project not refresh but increased with new value*/ 
        }
    }
}

thank you in advice. 谢谢你的建议。

您需要在combobox1中添加ValueChanged事件。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM