问题描述
C#winform中的datagridview为何不可以定制列的显示呢?sqlCmd.CommandText=sql;SqlDataAdapterada=newSqlDataAdapter();ada.SelectCommand=sqlCmd;DataTabledt=newDataTable();ada.Fill(dt);dataGridView1.DataSource=dt;//--下面加的这一段没有起作用,this.dataGridView1.Columns[0].HeaderText="编号";this.dataGridView1.Columns[0].Width=120;this.dataGridView1.Columns[0].DataPropertyName="BH";this.dataGridView1.Columns[1].HeaderText="名称";this.dataGridView1.Columns[1].Width=180;this.dataGridView1.Columns[1].DataPropertyName="BHName";我想让datagridview中的列内容由我自行控制显示,为何上面代码段中的后面增加部分没有起作用呢?请指点,谢谢!
解决方案
解决方案二:
this.dataGridView1.Columns[0].HeaderText="编号";dataGridView1.DataSource=dt;放在你增加的后面
解决方案三:
先后执行的问题
解决方案四:
引用1楼kongwei521的回复:
this.dataGridView1.Columns[0].HeaderText="编号";dataGridView1.DataSource=dt;放在你增加的后面
放在增加的后面会出错。不行
解决方案五:
解决方案六:
你自定义完了没有追加到列上面去dataGridView1.Columns.AddRange(newDataGridViewColumn[]{tbc});DisplayCol(dataGridView1,"BH","编号");DisplayCol(dataGridView1,"BHName","名称");///<summary>///Displaysthecol.///</summary>///<paramname="dgv">TheDGV.</param>///<paramname="dataPropertyName">Nameofthedataproperty.</param>///<paramname="headerText">Theheadertext.</param>voidDisplayCol(DataGridViewdgv,StringdataPropertyName,StringheaderText){dgv.AutoGenerateColumns=false;DataGridViewTextBoxColumntbc=newDataGridViewTextBoxColumn();tbc.DataPropertyName=dataPropertyName;tbc.HeaderText=headerText;tbc.Name=dataPropertyName;tbc.Resizable=DataGridViewTriState.True;tbc.Columns.AddRange(newDataGridViewColumn[]{tbc});}
解决方案七:
恩在定义dataview时要先写那些
解决方案八:
要么动态创建列,要么在在设计的是把列加上,然后控制显示也隐藏
解决方案九:
用这个属性:dataGridView1.Columns[0].FillWeight=50;