我的目标很简单。假设我有5行数据,我在DataGridView中填充。在第一列中,我填写了如下所示的数据。用户应填写第二栏中的数据。
姓名: -
年龄: -
地区: -
D.O.B: -
状态: -
现在我必须将ComboBox放在DataGridView的第二列中,用于"区"和"州"仅限行,并保留其余行可编辑。使用DataGridView,我可以使所有行为ComboBox或TextBox。我用谷歌搜索但没有用。我也试过了第三方工具,但这种类型的实现我还没有找到。我试图采用ListView / TreeView而不是DataGridView,但我没有实现。我正在使用C#Winforms VS2010。
如果有任何想法,我准备从头开始。提前谢谢。
编辑: 下面是突出显示的"行"应该是" ComboBox"剩下的应该是" Textboxes"。
如果我添加以下代码,整列将更改为ComboBox。
DataGridViewComboBoxColumn districtColumn = new DataGridViewComboBoxColumn();
districtColumn.DataPropertyName = "container";
districtColumn.HeaderText = "Details";
districtColumn.ValueType = typeof(Container);
districtColumn.DisplayMember = "District";
districtColumn.ValueMember = "code";
districtColumn.DisplayStyle = DataGridViewComboBoxDisplayStyle.ComboBox;
dataGridView1.Columns.Add(districtColumn);
希望你现在清楚地理解我的问题。
谢谢..
答案 0 :(得分:1)
啊......这次我找到了你。
您需要的是DataGridViewComboBoxCell
,创建一个comboxcell并将其放置在网格视图单元格中。
DataGridViewComboBoxCell cmbcell = new DataGridViewComboBoxCell();
cmbcell.DataSource = Districts; // Your data source
DataGridViewCell normalcell = new DataGridViewTextBoxCell();
normalcell.Value = "Name"; // creating the text cell
dataGridView1.Rows[iRowIndex].Cells[1] = cmbcell; // use your own logic to set row index
dataGridView1.Rows[iRowIndex].Cells[1] = normalcell;
希望这有帮助!