问题描述
急求大神!!我在dataGridVIew1的某一列中动态添加一个combox,然后出现下面的情况:
解决方案
解决方案二:
publicComboBoxmycombo=newComboBox();//全局变量....form_load(...){mycombo.Name="mycombo";mycombo.Items.Clear();mycombo.Items.Add("三甲");mycombo.Items.Add("二甲");mycombo.Items.Add("一甲");mycombo.Items.Add("三乙");mycombo.Items.Add("二乙");mycombo.Items.Add("一乙");mycombo.Items.Add("三丙");mycombo.Items.Add("二丙");mycombo.Items.Add("一丙");mycombo.TextChanged+=newEventHandler(Mycombo_changed);//为生成的组合框控件,添加文本改变事件处理函数dataGridView1.Controls.Add(mycombo);//把组合框添加到dataGridView1中}//当文本改变时,把dataGridView当前单元格内容设为组合框的内容privatevoidMycombo_changed(objectsender,EventArgse){if(dataGridView1.CurrentCell.ColumnIndex==3)dataGridView1.CurrentCell.Value=mycombo.Text;}//为dataGridView控件的单元格获得焦点事件//即当医院等级列的单元格获得焦点时,显示生成的组合框privatevoiddataGirdView1_cellEnter(objectsender,DataGridViewCellEventArgse){if(e.ColumnIndex==3){mycombo.Visible=false;mycombo.Left=dataGridView1.GetCellDisplayRectangle(3,dataGridView1.CurrentRow.Index,true).Left;//横坐标mycombo.Top=dataGridView1.GetCellDisplayRectangle(3,dataGridView1.CurrentRow.Index,true).Top;//纵坐标mycombo.Text=dataGridView1.CurrentCell.Value.ToString()+"";//组合框的文本为单元格的值mycombo.Visible=true;//组合框显示}else{mycombo.Visible=false;}}//单击dataGridView控件,组合框隐藏privatevoiddataGridView1_Click(objectsender,EventArgse){mycombo.Visible=false;}
解决方案三:
引用楼主liu_ing的回复:
急求大神!!我在dataGridVIew1的某一列中动态添加一个combox,然后出现下面的情况:
为什么会出现这种情况啊??各位大神!!是这个函数出错了吗??privatevoiddataGirdView1_cellEnter(objectsender,DataGridViewCellEventArgse){}
解决方案四:
DataGridView中的组合框为DataGridViewComboBoxCell,动态添加很简单,参考以下代码privatevoidButton1_Click(objectsender,EventArgse){DataGridViewComboBoxCellnewComboBoxCell=newDataGridViewComboBoxCell();newComboBoxCell.Items.AddRange({"选项1","选项2","选项3"});DataGridViewRownewRow=newDataGridViewRow();newRow.Cells.Add(newComboBoxCell);DataGridView1.Rows.Add(newRow);}
解决方案五:
引用3楼hironpan的回复:
DataGridView中的组合框为DataGridViewComboBoxCell,动态添加很简单,参考以下代码privatevoidButton1_Click(objectsender,EventArgse){DataGridViewComboBoxCellnewComboBoxCell=newDataGridViewComboBoxCell();newComboBoxCell.Items.AddRange({"选项1","选项2","选项3"});DataGridViewRownewRow=newDataGridViewRow();newRow.Cells.Add(newComboBoxCell);DataGridView1.Rows.Add(newRow);}
这是给行添加combox的。。可我只想要给指定的一列添加
解决方案六:
引用4楼liu_ing的回复:
Quote: 引用3楼hironpan的回复:
DataGridView中的组合框为DataGridViewComboBoxCell,动态添加很简单,参考以下代码privatevoidButton1_Click(objectsender,EventArgse){DataGridViewComboBoxCellnewComboBoxCell=newDataGridViewComboBoxCell();newComboBoxCell.Items.AddRange({"选项1","选项2","选项3"});DataGridViewRownewRow=newDataGridViewRow();newRow.Cells.Add(newComboBoxCell);DataGridView1.Rows.Add(newRow);}这是给行添加combox的。。可我只想要给指定的一列添加
方法1、用DataGridViewComboBoxColumn方法2、同以上代码,可以在任意行的任意列添加
解决方案七:
DataGridViewComboBoxCellcm=newDataGridViewComboBoxCell();DataGridViewColumnnewcolumn=newDataGridViewColumn();怎样把列的单元格弄成DataGridViewComboBoxCell??查资料,找不到。。然后是把该列添加到指定的列中吗??怎么弄啊。。我还是菜鸟。。
解决方案八:
引用6楼liu_ing的回复:
DataGridViewComboBoxCellcm=newDataGridViewComboBoxCell();DataGridViewColumnnewcolumn=newDataGridViewColumn();怎样把列的单元格弄成DataGridViewComboBoxCell??查资料,找不到。。然后是把该列添加到指定的列中吗??怎么弄啊。。我还是菜鸟。。
this.dataGridView1.Columns.Add(cm);这样