Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

DataGridView automatically generates columns

On my Windows Form I have a DataGridView component, which is bound to a BindingSource. The BindingSource is an object datasource to an EntityFramework object.

Some times the columns in my DataBridView are renewed. Sometimes all properties are added as column, but now it also removed all my columns. So i've lost all my settings.

When to columns get automatically get added?

(I'm using VS.NET 2010)

Update:

//
// Summary:
//     Gets or sets a value indicating whether columns are created automatically
//     when the System.Windows.Forms.DataGridView.DataSource or System.Windows.Forms.DataGridView.DataMember
//     properties are set.
//
// Returns:
//     true if the columns should be created automatically; otherwise, false. The
//     default is true.
[Browsable(false)]
[EditorBrowsable(EditorBrowsableState.Advanced)]
[DefaultValue(true)]
public bool AutoGenerateColumns { get; set; }

The property did not show up in the designer, and "hide advanced properties" is not checked.

Update 2: When I update my entity framework model, all columns are added again. I only can set the property in the constructor of the form. This is very annoying.

like image 461
Bojo Avatar asked Mar 19 '12 10:03

Bojo


4 Answers

I actually don't know when this happens, but I tend to create all the columns manually. I create the columns in the designer and set the AutoGenerateColumns property to false in my code.

like image 75
Thorsten Dittmar Avatar answered Nov 16 '22 16:11

Thorsten Dittmar


Add this code or change your DataGridView Property AutoGenerateColumns to false

DataGridView1.AutoGenerateColumns=false;
like image 6
Kishore Kumar Avatar answered Nov 16 '22 17:11

Kishore Kumar


Set AutoGenerateColumns property to False but keep remember do it just before databinding. eg: DataGridView1.AutoGenerateColumns=false; DataGridView1.DataSource=getData();

By default it is set to True.

like image 4
yashpal Avatar answered Nov 16 '22 16:11

yashpal


Try leave first of auto generated columns and set it visibility false. If it don't help try leave all them with Visible=false. Sorry for bad English.

like image 1
Makich Avatar answered Nov 16 '22 17:11

Makich