2012-01-05 70 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

相關問題