日期:2014-05-19  浏览次数:20871 次

怎样识别datagridview中的某列是否DataGridViewComboBoxColumn类型,并枚举Item下拉列表?
例如,
1、对于datagridview1.Rows[1].Cells[1],如何识别其所在列是否DataGridViewComboBoxColumn?
2、如果是,又如何将绑定的ValueMember和DisplayMember枚举出来?
3、第2个问题换一种提法:或者,如何根据这个cell的显示值得到对应的实际value?

谢谢!

------解决方案--------------------
给个思路:

foreach (DataGridViewColumn o in this.dataGridView1.Columns)
{
DataGridViewComboBoxColumn ss;
if (o.GetType() == typeof(DataGridViewComboBoxColumn))
{

ss = o as DataGridViewComboBoxColumn;

for (int i=0;i <ss.Items.Count;i++)
{

}

}
}
------解决方案--------------------
1.
方法1,判断Cell的类型
if (this.dataGridView1.CurrentCell is DataGridViewComboBoxCell)
{
MessageBox.Show(this.dataGridView1.CurrentCell.Value.ToString());
}

方法2,判断Cell所在列的类型
if (this.dataGridView1.Columns[this.dataGridView1.CurrentCell.ColumnIndex] is DataGridViewComboBoxColumn)
{
MessageBox.Show(this.dataGridView1.CurrentCell.Value.ToString());
}