4.1 数据输入和验证的相关事件
4.1.1 数据验证相关事件的顺序
下面列出validation,enter/leave和begin/end这些事件的顺序(当EditMode为EditOnEnter时):
当从一个单元移动至另一单元(在同一行内):
1) Cell Leave (原来的单元)
2) Cell Validating/ed (原来的单元)
3) Cell EndEdit (原来的单元)
4) Cell Enter (新的单元)
5) Cell BeginEdit (新的单元)
当从一行移动到另一行:
1) Cell Leave (原来的单元),Row leave (原来的行)
2) Cell Validating/ed (原来的单元)
3) Cell EndEdit (原来的单元)
4) Row Validating/ed (原来的行)
5) Row Enter (新的行)
6) Cell Enter (新的单元)
7) Cell BeginEdit (新的单元)
4.1.2 验证数据
验证用户输入时,如果DataGridView采用非数据绑定模式,通常会对单元进行验证;而如果采用数据绑定模式,则一般会对行进行验证。这与数据的组织方式密切相关,非数据绑定模式下,一行的单元间关系一般比较“散”,而绑定模式下,数据源的数据一般以行来组织。但有时在数据绑定模式下会同时进行单元级和行级的验证。
4.1.2.1 显示错误信息
一旦遭遇了无效的输入数据,你通常需要通知用户。这时有多种方式可以选择,传统的方式是使用信息对话框。DataGridView还能够为行或单元显示一个错误图标来通知用户输入了无效数据。错误图标带有一个工具提示,它提供了该错误的相关信息:
4.1.3 在新行中的数据输入(Data Entry in the New Row)
4.1.3.1 显示新行
使用AllowUserToAddRows属性以指示是否显示新行,其默认为true。
新行处于网的最后一行,标题带有星号:
在数据绑定的情况下,当DataGridView控件的AllowUserToAddRows属性和数据源的IBindingList.AllowNew 属性都为true时,新行才会显示,只要两者有一个为false,新行就不会显示。
4.1.3.2 为生成的新行添加默认
当用户选择新行作为当前行,DataGridView会触发DefaultValuesNeeded事件。在该事件中可以访问新行,并为其生成默认,为用户输入提供方便。
下面这段代码演示了如何在DefaultValuesNeeded事件中为新行指定默认。
private void dataGridView1_DefaultValuesNeeded(object sender,
DataGridViewRowEventArgs e)
{
e.Row.Cells["Region"].Value = "WA";
e.Row.Cells["City"].Value = "Redmond";
e.Row.Cells["PostalCode"].Value = "98052-6399";
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50070-22.html
现在都搞互联网销售了
反舰导弹就很被动
即使是后面一条