如何在datgridview中检查特定coulmn中的单元格

时间:2017-03-25 06:24:32

标签: c# winforms datagridview combobox

我有以下方法以窗口形式在datagridview中显示组合框。

当我们控制特定列的任何单元格以及datagridview的哪个事件时,我如何传递参数。

#include<stdio.h>
#include<time.h>
int main
{
  time_t t = time(NULL);
  struct tm *tm = localtime(&t);
  char s[64];
  strftime(s, sizeof(s), "%Y-%m-%d", tm);  //gives date in yy-mm-dd format
  printf("%s",s);      //prints the date
}

提前感谢....

1 个答案:

答案 0 :(得分:0)

您实际上可以将DataGridViewComboBoxCell用于您的目的。

这是一个如何: 为了做到这一点,你可以在最适合你的组合框的情况下将控件转换为组合框。
我已经选择了EdittingControlShowing,因为它是在显示控件之后被提出的,即单击了组合框以便它将使用它的下拉方法:

private void gridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    if (e.Control.GetType() == typeof(DataGridViewComboBoxEditingControl))
    {
        ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
    }
}

这样,如果ComboBox的{​​{1}}中没有预设值,您将让用户输入他/她自己的值。为了做到这一点,您可以采用以下方法Items事件:

CellValidating

这将在这种情况下将输入添加到if (gridView1.CurrentCell.IsInEditMode) { if (gridView1.CurrentCell.GetType() == typeof(DataGridViewComboBoxCell)) { if (!((DataGridViewComboBoxColumn)gridView1.Columns[e.ColumnIndex]).Items.Contains(e.FormattedValue)) { ((DataGridViewComboBoxColumn)gridView1.Columns[e.ColumnIndex]).Items.Add(e.FormattedValue); } } } 单元格的项目中。