数据网格视图中的下拉列表
DropDown in datagridView
你好,我在 windows 表单中有 2 个 datagridView,在 1 个 datagridview 中有一个组合框,像这样
当我更改组合框的值时,datagridview 中的表应该是 updated.For 例如,如果我 select 第二个组合框作为 outputmetadatafield1 那么该行的列应该更新为输出元数据中的第一行 table.by 我无法将侦听器添加到组合框,至于 dropdowns_selectedindexchanged.Can 谁能告诉我该怎么做。
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");
}
}
谢谢!我找到了答案
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);
}
}
你好,我在 windows 表单中有 2 个 datagridView,在 1 个 datagridview 中有一个组合框,像这样
当我更改组合框的值时,datagridview 中的表应该是 updated.For 例如,如果我 select 第二个组合框作为 outputmetadatafield1 那么该行的列应该更新为输出元数据中的第一行 table.by 我无法将侦听器添加到组合框,至于 dropdowns_selectedindexchanged.Can 谁能告诉我该怎么做。
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");
}
}
谢谢!我找到了答案
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);
}
}