数据网格中的组合框

时间:2009-07-11 07:06:29

标签: c# combobox

正常的组合框与数据网格中的组合框有什么区别?

我的意思是说我无法在组合框中给出我的价值(在数据网格中),但我能够在正常组合中给出(键入任何值)。

3 个答案:

答案 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)

答案 2 :(得分:0)

查看源代码,您会注意到GridView的组合框控件的id不是您所期望的。这是因为它在服务器上运行,并且它的id是使用其命名容器等生成的。如果您引用.NET生成的id(您在源代码中看到的ID),您应该能够相应地操作GridView的组合框。 / p>

我猜测“正常”组合框没有在服务器上运行且它的id没有改变,因此你可以按预期引用控件。

只是预感,但我希望它有所帮助