Remove column from DataGridView

I have a database that has a Users table, and I present the data in a DataGridView. I would like to remove 4 columns, but the code that I have (link from MSDN) seems to add the columns at the end. How can I completely remove columns?

So this is what DGV looks like without deleted columns

Without removal code

The code I use to TRY and delete columns

RadarServerEntities rse = new RadarServerEntities(); gvUsers.DataSource = rse.Users; gvUsers.Columns.Remove("ID"); gvUsers.Columns.Remove("InsertDate"); gvUsers.Columns.Remove("Connections"); gvUsers.Columns.Remove("MachineID"); 

Result

With removal code

I would like to get rid of the last 4 columns, so why doesn't my code do this?

Many thanks:)

+6
source share
4 answers

I prefer to just hide the fields.

 gvUsers.Columns["ID"].Visibility = false; 

Et cetera.

+12
source

you can also use gvUsers.Columns.RemoveAt(IndexOfColumn);

+6
source

if you do not want to automatically create columns when binding the DataSource , you need to set gvUsers.AutoGenerateColumns = false;

 RadarServerEntities rse = new RadarServerEntities(); gvUsers.AutoGenerateColumns = false; gvUsers.DataSource = rse.Users; 
+3
source
 DataGridViewColumn DataGridViewColumnSelected; private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex !=-1 && e.RowIndex == -1) { DataGridViewColumnSelected = dataGridView1.Columns[e.ColumnIndex] as DataGridViewColumn; } } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { bool bHandled = false; switch (keyData) { case Keys.Delete: if (DataGridViewColumnSelected != null) { this.dataGridView1.Columns.RemoveAt(DataGridViewColumnSelected.Index); //dataGridView1.Columns[DataGridViewColumnSelected.Name].Visible = false; // case of just hiding the column } break; } return bHandled; } 
0
source

Source: https://habr.com/ru/post/906420/


All Articles