首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DropDown in datagridView

DropDown in datagridView
EN

Stack Overflow用户
提问于 2015-06-19 11:55:06
回答 1查看 10K关注 0票数 2

你好,我在一个windows窗体中有两个datagridViews,在一个数据视图中有一个组合框,类似这样

当我更改combobox的值时,datagridview中的表应该是updated.For示例,如果我选择第二个combobox为outputmetadatafield1,那么该行的列应该被更新为输出元数据table.by中的第1行列,我无法向combobox添加侦听器,因为dropdowns_selectedindexchanged.Can告诉m,e如何做到这一点。

代码语言:javascript
复制
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        load_input_table();
        load_output_table();
    }
    static String conn = @"Data Source=SUMEET-PC\MSSQLSERVER1;Initial Catalog=EMIDS;Integrated Security=True";
    SqlConnection connection = new SqlConnection(conn);

    private void load_input_table()
    {
        String sql = "select * from input_metadata";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
        DataTable table = new DataTable();
        adapter.Fill(table);
        BindingSource b = new BindingSource();
        b.DataSource = table;
        dataGridView1.DataSource = b;
        addcombo();

    }
    private void addcombo()
    {
        DataGridViewComboBoxColumn inputtablecombobox = new DataGridViewComboBoxColumn();
        inputtablecombobox.HeaderText = "field";
        inputtablecombobox.Name = "inputtablecombobox";
        String combosql = "select field from input_metadata";
        SqlDataAdapter comboadapter = new SqlDataAdapter(combosql, connection);
        DataSet ds = new DataSet();
        comboadapter.Fill(ds);
        inputtablecombobox.DataSource = ds.Tables[0];
        inputtablecombobox.DisplayMember = "field";
        inputtablecombobox.ValueMember = "field";
        dataGridView1.Columns.Add(inputtablecombobox);
    }
    private void load_output_table()
    {
        String sql = "select * from output_metadata";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
        DataTable table = new DataTable();
        adapter.Fill(table);
        BindingSource b = new BindingSource();
        b.DataSource = table;
        dataGridView2.DataSource = b;
    }
    private void inputtablecombobox_SelectedIndexChanged(object sender, EventArgs e)
    {
          MessageBox.Show("text");
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-22 07:04:12

谢谢!我找到了答案

代码语言:javascript
复制
public Form1()
    {
        InitializeComponent();
        load_input_table();
        load_output_table();
        dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);
    }

    static String conn = @"Data Source=SUMEET-PC\MSSQLSERVER1;Initial Catalog=EMIDS;Integrated Security=True";
    SqlConnection connection = new SqlConnection(conn);
    DataGridViewComboBoxColumn inputtablecombobox = new DataGridViewComboBoxColumn();

    private void load_input_table()
    {
        String sql = "select * from input_metadata";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
        DataTable table = new DataTable();
        adapter.Fill(table);
        BindingSource b = new BindingSource();
        b.DataSource = table;
        dataGridView1.DataSource = b;
        addcombo();

    }

    private void addcombo()
    {
        inputtablecombobox.HeaderText = "field";
        inputtablecombobox.Name = "inputtablecombobox";
        String combosql = "select field from input_metadata";
        SqlDataAdapter comboadapter = new SqlDataAdapter(combosql, connection);
        DataSet ds = new DataSet();
        comboadapter.Fill(ds);
        inputtablecombobox.DataSource = ds.Tables[0];
        inputtablecombobox.DisplayMember = "field";
        inputtablecombobox.ValueMember = "field";
        dataGridView1.Columns.Add(inputtablecombobox);
    }

    private void load_output_table()
    {
        String sql = "select * from output_metadata";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
        DataTable table = new DataTable();
        adapter.Fill(table);
        BindingSource b = new BindingSource();
        b.DataSource = table;
        dataGridView2.DataSource = b;
    }

    private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        ComboBox combo = e.Control as ComboBox;
        if (combo != null)
        {
            combo.SelectedIndexChanged -= new EventHandler(inputtablecombobox_SelectedIndexChanged);
            combo.SelectedIndexChanged += new EventHandler(inputtablecombobox_SelectedIndexChanged);
        }
    }
    private void inputtablecombobox_SelectedIndexChanged(object sender, EventArgs e)
    {
        MessageBox.Show(text);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30937542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档