正常的组合框与数据网格中的组合框有什么区别?
我的意思是说我无法在组合框中给出我的价值(在数据网格中),但我能够在正常组合中给出(键入任何值)。
答案 0 :(得分:1)
组合框控件的下拉样式设置为下拉列表。因此,您可以在其中键入值。而DataGridView的组合框列的属性设置为DropDownList。这是您无法输入的原因。如果您想输入,可以使用以下代码执行此操作:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) {
if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl)) {
DataGridViewComboBoxEditingControl edit = e.Control as DataGridViewComboBoxEditingControl;
edit.DropDownStyle = ComboBoxStyle.DropDown;
}
}
除此之外,您还需要处理DataGridViewComboBoxEditingControl的验证事件,以确定用户在组合框中输入值时要执行的操作。
答案 1 :(得分:0)
“普通”组合框或System.Windows.Forms.ComboBox是Windows窗体用户控件,用于显示用户可以选择 ONE 选项的多个值。类型ComboBox.DropDownStyle枚举属性的ComboBoxStyle定义组合框的文本部分的行为是否可编辑。
“数据网格”组合框是System.Windows.Forms.DataGridViewComboBoxColumn类 表示DataGridViewComboBoxCell对象的列。此类展示了“Normal”组合框的几乎行为,但类层次结构(从DataGridViewColumn派生)可以嵌入到Datagrid中。
答案 2 :(得分:0)
查看源代码,您会注意到GridView的组合框控件的id不是您所期望的。这是因为它在服务器上运行,并且它的id是使用其命名容器等生成的。如果您引用.NET生成的id(您在源代码中看到的ID),您应该能够相应地操作GridView的组合框。 / p>
我猜测“正常”组合框没有在服务器上运行且它的id没有改变,因此你可以按预期引用控件。
只是预感,但我希望它有所帮助