我使用下面的代码在datagridview的combocolumn中加载数据,但我不想要的第一个描述列请告诉我如何从datagridview中删除第一个描述列
private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.DataSource = loadData();
fillCombo();
}
private void fillCombo()
{
DataGridViewColumnCollection columns = dataGridView1.Columns;
DataGridViewTextBoxColumn Text = new DataGridViewTextBoxColumn();
Text.HeaderText = "ITEM";
Text.Name = "ITEM";
columns.Add(Text);
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.HeaderText = "LOCATION";
combo.Name = "combo";
combo.DisplayMember = "LOCATION";
combo.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
ArrayList row = new ArrayList();
foreach (DataRow dr in dt.Rows)
{
row.Add(dr["LOCATION"].ToString());
}
combo.Items.AddRange(row.ToArray());
dataGridView1.Columns.Add(combo);
}
private DataTable loadData()
{
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand cmd;
DataSet ds = new DataSet();
string sql = "Select * From Table1";
cmd = new SqlCommand(sql, con);
adapter.SelectCommand = cmd;
adapter.Fill(ds);
dt = ds.Tables[0];
return dt;
}
答案 0 :(得分:0)
在这样的情况下选择*不是一个好习惯,它使架构更改更容易破坏您的应用程序。我最好的建议是选择项目和位置而不是*。这意味着只有项目和位置会显示在您的网格中。
答案 1 :(得分:0)
Method1
DataGridTableStyle ts = new DataGridTableStyle();
private void deleteColumn()
{
ts.MappingName = dataGrid1.DataMember;
dataGrid1.TableStyles.Add(ts);
dataGrid1.TableStyles[0].GridColumnStyles.RemoveAt(0);
}
Method2
gridview.Columns["ColumnName"].Visible = false;