2012-01-05 32 views
1

我需要将datagridviewcell的valuetype设置为枚举值进行验证。我怎样才能将它设置为只有一些枚举的值?如何设置一个枚举的几个值作为datagridviewcell的valuetype类型?

我可以做

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


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

但这验证为所有枚举值MyEnum,也就是说,它可以让用户在MyEnum但没有别的键入所有值。我需要用户只能输入momdad。如何实现这一目标?

+1

人们可以用它可用于组后分离的枚举在您的情况的属性装点个人枚举。请参阅我的博客文章,其中介绍了如何将更多信息放在枚举中,然后反映这些信息:[C#使用对象的扩展属性信息](http://omegacoder.com/?p=28)编辑另外,人们可以使用Tag对象来保存项目,因为它会载入网格/组合框。请参阅[C#Winforms和隐藏的关联标记](http://omegacoder.com/?p=66) – OmegaMan 2012-01-05 20:26:48

+0

谢谢,让我看看那.. – nawfal 2012-01-05 20:38:07

+0

请参阅我编辑标记成员可能是服务。 – OmegaMan 2012-01-05 20:49:01

回答

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; 
+0

很有创意.. – nawfal 2012-01-05 21:01:09

相关问题