如何只设置枚举的几个值作为datagridviewcell的值类型?

时间:2012-01-05 19:52:27

标签: c# winforms validation c#-4.0 datagridview

我需要将datagridviewcell的valuetype设置为枚举值以进行验证。如何将其设置为该枚举的某些值?

我能做到

  dgv[i, j].ValueType = typeof(MyEnum);


  MyEnum { me, bro, sis, mom, dad }

但是这会验证MyEnum中的所有枚举值,即它允许用户键入MyEnum中的所有值,但不能输入任何其他值。我需要用户只能输入momdad。怎么做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以将另一个枚举定义为MyEnum的子集:

enum MyEnum { me, bro, sis, mom, dad } 

enum Subset 
{ 
    mom = MyEnum.mom,
    dad = MyEnum.dad
}

dgv[i, j].ValueType = typeof(Subset);     

// to get the MyEnum value, cast it back:
MyEnum cellVal = (MyEnum)dgv[i, j].Value;