C#中如何将一个comboBox组件放置dataGridView组件中的某一个确定的单元格中?
2个回答
2013-08-30
展开全部
WinForm的DataGrid要显示ComboBox的效果必须要写一个继承自DataGridTextBoxColumn的类, 并在其中制作ComboBox的功能, 再把这个类的对象加入到DataGrid中使用即可, 做法如下:
DataGridComboBoxColumn ComboCol =new DataGridComboBoxColumn();
ComboCol.MappingName = "RegionID";
ComboCol.HeaderText = "Region";
ComboCol.Width = 120;
ComboCol.ColumnComboBox.DataSource = ds1.Tables["Region"].DefaultView;
ComboCol.ColumnComboBox.DisplayMember = "RegionDescription";
ComboCol.ColumnComboBox.ValueMember = "RegionID";
tableStyle.PreferredRowHeight = ComboCol.ColumnComboBox.Height + 2;
tableStyle.GridColumnStyles.Add(ComboCol);
dataGrid1.TableStyles.Add(tableStyle);
DataGridComboBoxColumn ComboCol =new DataGridComboBoxColumn();
ComboCol.MappingName = "RegionID";
ComboCol.HeaderText = "Region";
ComboCol.Width = 120;
ComboCol.ColumnComboBox.DataSource = ds1.Tables["Region"].DefaultView;
ComboCol.ColumnComboBox.DisplayMember = "RegionDescription";
ComboCol.ColumnComboBox.ValueMember = "RegionID";
tableStyle.PreferredRowHeight = ComboCol.ColumnComboBox.Height + 2;
tableStyle.GridColumnStyles.Add(ComboCol);
dataGrid1.TableStyles.Add(tableStyle);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-30
展开全部
使用模板列。在列表加载的时候,可以用RowDataBound事件来初始化单选按钮。之后也可以取到值。给你几行代码:
ComboBox cb = (ComboBox)e.Item.Cells[0].FindControl( "cb" );
那个e就是RowDataBound事件的参数;
Cells里是列索引,从0开始,无论显示还是隐藏的都要算在内;
FindControl的参数要写模板列中ComboBox的名字。
ComboBox cb = (ComboBox)e.Item.Cells[0].FindControl( "cb" );
那个e就是RowDataBound事件的参数;
Cells里是列索引,从0开始,无论显示还是隐藏的都要算在内;
FindControl的参数要写模板列中ComboBox的名字。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询