C# 如何使用组合框仅填充GridView的选定单元格
我的目标很简单。假设我在DataGridView中填写了5行数据。在第1列中,我填写了如下所示的数据。用户应在第二列填写数据 姓名:-- 年龄:—— 地区:-- D.O.B:-- 声明:-- 现在,我必须在DataGridView的第2列中仅为“地区”和“州”行放置组合框,并使其余行保持可编辑状态。使用DataGridView,我可以将所有行设置为ComboBox或TextBox。我在谷歌上搜索了这个,但没有用。我也尝试过第三方工具,但没有找到这种类型的实现。我尝试使用ListView/TreeView而不是DataGridView,但没有实现。我使用的是C#Winforms VS2010 如果有任何想法,我准备从头开始。提前谢谢 编辑: 下面是输出,突出显示的“行”应为“组合框”,其余应为“文本框”。 如果我添加下面的代码,整个列将更改为ComboBoxC# 如何使用组合框仅填充GridView的选定单元格,c#,winforms,datagridview,combobox,C#,Winforms,Datagridview,Combobox,我的目标很简单。假设我在DataGridView中填写了5行数据。在第1列中,我填写了如下所示的数据。用户应在第二列填写数据 姓名:-- 年龄:—— 地区:-- D.O.B:-- 声明:-- 现在,我必须在DataGridView的第2列中仅为“地区”和“州”行放置组合框,并使其余行保持可编辑状态。使用DataGridView,我可以将所有行设置为ComboBox或TextBox。我在谷歌上搜索了这个,但没有用。我也尝试过第三方工具,但没有找到这种类型的实现。我尝试使用ListView/Tree
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);
希望你现在明白我的问题了
谢谢..啊。。。这次我抓住你了 您需要的是,创建一个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;
希望这有帮助 这似乎不是一个
DataGridView
可表示的数据。最好看看PropertyGrid
控件。我将选中这一个。谢谢您的建议。没问题,如果您有进一步的问题/澄清,请在此处发布。这不起作用,因为ComboBox应用于列的所有行。@Gopi,我想您对所有列都使用了combo列模板,我已经更新了的代码来声明其他列。谢谢,它工作正常。还有一个帮助,当我点击组合框时,显示的是项目,但是项目的宽度大于组合框的宽度。如何处理这个问题。