FIX: 您在 Visual Studio.net 2002年在 DataGrid 控件中使用 SHIFT + 向上键组合键时可能会收到"IndexOutOfRangeException"错误消息

文章翻译 文章翻译
文章编号: 825031 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

症状

当在 DataGrid 控件中使用 SHIFT + 向上键组合键时,可能会出现一个问题。出现此问题时, 您还可以为 true,则在 DataGrid 控件集的 只读 属性。您还可以选择在 DataGrid 控件中的所有行。

您可能会收到以下错误消息:
System.IndexOutOfRangeException: 索引已超出界限的数组。
在 System.Windows.Forms.DataGrid.ProcessGridKey (KeyEventArgs ke)
在 System.Windows.Forms.DataGrid.ProcessDialogKey (键 keyData)
(消息和消息) 在 System.Windows.Forms.Control.PreProcessMessage
在 System.Windows.Forms.ThreadContext.System.Windows.Forms。
UnsafeNativeMethods+IMsoComponent.FPreTranslateMessage (MSG 和消息)

解决方案

若要解决此问题,获得最新的 service pack,对于在 Microsoft.net Framework 1.0。以下文件是可从 Microsoft 下载中心下载:

在 Microsoft.net Framework 1.0 Service Pack 3

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。 此问题已被首先更正 microsoft.net Framework 1.0 Service Pack 3。

更多信息

重现此问题的步骤

  1. 启动 Microsoft Visual Studio.net。
  2. 文件 菜单上指向 新建,然后单击 项目

    新建项目 对话框。
  3. 项目类型 框中,单击 Visual Basic 项目
  4. 模板 框中,单击 Windows 应用程序
  5. 名称 框中键入 WindowsApplication1 作为应用程序的名称。
  6. 单击 确定

    默认状态下,称为 Form1.vb 的文件添加到项目中,如果您使用的 Visual Basic.net。

    默认状态下,名为 Form1.cs 文件添加到项目中,如果您使用 Microsoft Visual C#.net。
  7. 双击要将 DataGrid 控件添加到名为 Form1 的窗体的 数据网格

    默认情况下, 名为 DataGrid DataGrid 控件被添加到名为 Form1 的窗体。
  8. Form1 的设计视图中双击名为 Form1,窗体,然后将下面的代码添加到 Form1_Load 过程:

    Visual Basic.net 代码
    Dim dataTable As DataTable
    dataTable = New DataTable("TABLE")
    
    Dim col As New DataColumn()
    col.DataType = Type.GetType("System.String")
    col.ColumnName = "col1"
    col.DefaultValue = "000"
    'Add columns.  
    dataTable.Columns.Add(New DataColumn("Col1"))
    dataTable.Columns.Add(New DataColumn("Col2"))
    dataTable.Columns.Add(New DataColumn("Col3"))
    
    Dim myDataRow As DataRow = dataTable.NewRow()
    myDataRow(0) = "11111"
    myDataRow(1) = "22222"
    myDataRow(2) = "33333"
    dataTable.Rows.Add(myDataRow)
    
    DataGrid1.DataSource = dataTable.DefaultView
    dataTable.Columns.Add
    visual C#.net 代码
    DataTable dataTable;
    dataTable = new DataTable("TABLE");
    
    DataColumn col = new DataColumn();
    col.DataType = Type.GetType("System.String");
    col.ColumnName = "col1";
    col.DefaultValue = "000";
    //Add columns.  
    dataTable.Columns.Add(new DataColumn("Col1"));
    dataTable.Columns.Add(new DataColumn("Col2"));
    dataTable.Columns.Add(new DataColumn("Col3"));
    
    DataRow myDataRow = dataTable.NewRow();
    myDataRow[0] = "11111";
    myDataRow[1] = "22222";
    myDataRow[2] = "33333";
    dataTable.Rows.Add(myDataRow);
    
    dataGrid1.DataSource = dataTable.DefaultView;
  9. 生成 菜单上单击 生成解决方案
  10. 调试 菜单上单击 开始

    将出现名为 Form1 的窗体。
  11. 将鼠标指针放在最后一行 DataGrid 控件中的任何列。
  12. 通过使用 CTRL + A 组合键选择 DataGrid 控件中的所有单元格。
  13. 按下 SHIFT + 向上键组合键。

    您可能会收到错误消息提到"症状"一节。

参考

有关更多的信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:

Windows 窗体数据网格
http://msdn2.microsoft.com/en-us/vbasic/ms789159.aspx
有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
320584通过使用 Visual C#.net 控制如何在.net 中的键击补漏白

属性

文章编号: 825031 - 最后修改: 2013年10月26日 - 修订: 1.6
这篇文章中的信息适用于:
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0
关键字:?
kbnosurvey kbarchive kbmt kbnetframe100presp3fix kbctrl kbcontrol kbqfe kbhotfixserver kbfix kbbug KB825031 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 825031
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com