我有以下方法以窗口形式在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
}
提前感谢....
答案 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);
}
}
}
单元格的项目中。