这是因为DataGrid控件的Row属性设置是从可见的范围的顶部第一行算起,而不是一定从整个控件的第一行算起,假设DataGrid共有20行数据,而DataGrid的高度只能一次显示10行,现在你拉一下控件的垂直滚动条,使你看到的顶部第一行为第10行,这时你要是运行DataGrid1.Row=11,则会出错,因为它从第10行开始算,向下跳11行,超出了范围。