2012-01-08 29 views
1

问题应该是自我解释。我有一个datagridview有一个列的单元格应该只接受正整数在用户输入。如何将valuetype设置为正整数?

所以,我怎么能设置是这样的:

  dgv.Columns[i].ValueType = typeof(int > 0); 

当然我可以在cellValueChanged事件处理单独的验证。但是,因为我已经全部验证在DataError事件自动处理(因为我设置VALUETYPE为每列),我想我上面的验证,在这里处理

private void dgv_DataError(object sender, DataGridViewDataErrorEventArgs e) 
    { 
     // not fair.. 
     e.Cancel = true; 
    } 

如何?

更新:由于我听到很多关于uint(正如其中一个答案所提议的)的否定,就像uints不符合CLS,并非所有的语言都支持它等,可以仅用于上面的验证目的吗?

+0

'dgv.Columns [I] .ValueType' ...? – BoltClock 2012-01-08 15:25:50

+0

@BoltClock你的意思是? – nawfal 2012-01-08 15:27:48

+0

CLS遵从性只对公共类有影响,这是用另一种语言编写的代码可以使用的类型。显然这不适用于私人控制。 – 2012-01-08 15:47:06

回答

3

问题的上部应该很容易解决这样的:

dgv.Columns[i].ValueType = typeof(uint); 

下部我不明白的。

+0

它确定您不明白,对问题不重要。但是我听到很多关于uint的消极情绪。仅用于验证目的可以使用吗? – nawfal 2012-01-08 15:39:40

2

申报UINT型变量最小UINT的

是0

maximun OD UINT是4294967295

相关问题