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

当我更改combobox的值时,datagridview中的表应该是updated.For示例,如果我选择第二个combobox为outputmetadatafield1,那么该行的列应该被更新为输出元数据table.by中的第1行列,我无法向combobox添加侦听器,因为dropdowns_selectedindexchanged.Can告诉m,e如何做到这一点。
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");
}
}发布于 2015-06-22 07:04:12
谢谢!我找到了答案
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);
}
}https://stackoverflow.com/questions/30937542
复制相似问题