Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# datagrid中的组合框_C#_Combobox - Fatal编程技术网

C# datagrid中的组合框

C# datagrid中的组合框,c#,combobox,C#,Combobox,普通组合框和datagrid中的组合框有什么区别 我的意思是说我不能在combobox(datagrid)中给出我的值,但我可以在普通组合中给出(键入任何值)。combobox控件的下拉样式设置为dropdown。因此,您可以在其中键入值。而DataGridView的combobox列的属性设置为DropDownList。这就是您无法键入的原因。如果要键入,可以使用以下代码执行此操作: private void dataGridView1_EditingControlShowing(object

普通组合框和datagrid中的组合框有什么区别


我的意思是说我不能在combobox(datagrid)中给出我的值,但我可以在普通组合中给出(键入任何值)。

combobox控件的下拉样式设置为dropdown。因此,您可以在其中键入值。而DataGridView的combobox列的属性设置为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;
      }
    }
除此之外,您还需要处理DataGridViewComboBox编辑控件的验证事件,以决定当用户在combobox中键入值时要做什么。

  • “普通”组合框或是Windows窗体用户控件,用于显示多个值,用户可以选择其中一个选项。枚举类型属性定义组合框文本部分的行为是否可编辑

  • “数据网格”组合框是 表示一列DataGridViewComboxCell对象。该类几乎表现出“普通”组合框的行为,但类层次结构(源自DataGridViewColumn)可以嵌入到Datagrid中


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

我猜“普通”组合框没有在服务器上运行,它的id也没有改变,因此您可以按预期引用该控件


这只是一种预感,但我希望它对editcontrol的验证事件有所帮助,发送方的text属性将拥有它。