CORRECTIF : vous pouvez recevoir un message d'erreur " l'exception IndexOutOfRangeException" lorsque vous utilisez la combinaison de touches MAJ + flèche vers le haut dans un contrôle DataGrid dans Visual Studio .NET 2002

Traductions disponibles Traductions disponibles
Numéro d'article: 825031 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Lorsque vous utilisez la combinaison de touches MAJ + flèche vers le haut dans un contrôle DataGrid , un problème peut se produire. Lorsque ce problème se produit, vous avez également la propriété ReadOnly du jeu de contrôle DataGrid sur true. Vous devez également toutes les lignes dans le contrôle DataGrid sélectionné.

Vous pouvez recevoir le message d'erreur suivantes :
System.IndexOutOfRangeException : index était en dehors des limites du tableau.
à System.Windows.Forms.DataGrid.ProcessGridKey (ke KeyEventArgs)
à System.Windows.Forms.DataGrid.ProcessDialogKey (keyData clés)
à System.Windows.Forms.Control.PreProcessMessage (message & msg)
à System.Windows.Forms.ThreadContext.System.Windows.Forms.
UnsafeNativeMethods+IMsoComponent.FPreTranslateMessage (MSG & msg)

Résolution

Pour résoudre ce problème, procurez-vous le dernier service pack pour Microsoft .NET Framework 1.0. Le fichier suivant est téléchargeable à partir du Centre de téléchargement Microsoft :

Le Microsoft .NET Framework 1.0 Service Pack 3

Statut

Microsoft a confirmé que c'est un problème dans les produits Microsoft répertoriés dans la section « S'applique à ». Ce problème a été corrigé dans le Microsoft .NET Framework 1.0 Service Pack 3.

Plus d'informations

Procédure pour reproduire le problème

  1. Démarrez Microsoft Visual Studio .NET.
  2. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet .

    La boîte de dialogue Nouveau projet s'affiche.
  3. Sous types de projets , cliquez sur projets Visual Basic .
  4. Sous modèles , cliquez sur Windows Application .
  5. Dans la zone Nom , tapez WindowsApplication1 comme nom de l'application.
  6. Cliquez sur OK .

    Par défaut, un fichier est nommé Form1.vb est ajouté au projet si vous utilisez Visual Basic .NET.

    Par défaut, un fichier est nommé Form1.cs est ajouté au projet si vous utilisez Visual C# .NET.
  7. Double-cliquez sur la grille de données pour ajouter un contrôle DataGrid à l'écran qui est nommé Form1 .

    Par défaut, le contrôle DataGrid nommé DataGrid est ajouté à l'écran qui est nommé Form1.
  8. En mode Création de Form1 , double-cliquez sur le formulaire est nommé Form1 et ajoutez ensuite le code suivant à la procédure Form1_Load :

    code Visual Basic .NET table de données en tant que DataTable
    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 (nouveau DataColumn("Col1")) dataTable.Columns.Add (nouveau 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
    code 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;
    dataTable.Columns.Add (nouveau DataColumn("Col1")) ; dataTable.Columns.Add (nouveau 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. Dans le menu Générer , cliquez sur Créer solution .
  10. Dans le menu Déboguer , cliquez sur Démarrer .

    Le formulaire est nommé Form1 s'affiche.
  11. Placez le pointeur dans toute colonne de la dernière ligne dans le contrôle DataGrid .
  12. Sélectionnez toutes les cellules dans le contrôle DataGrid à l'aide la combinaison de touches CTRL + A.
  13. Appuyez sur la combinaison de touches MAJ + flèche vers le haut.

    Vous pouvez recevoir le message d'erreur mentionné dans la « Symptômes » de cet article section.

Références

Pour plus d'informations, reportez-vous au site de Web) MSDN (Microsoft Developer Network suivant :

Le DataGrid Windows Forms
http://msdn2.microsoft.com/en-us/vbasic/ms789159.aspx
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
320584 Comment faire pour intercepter les séquences de touches dans .NET contrôle à l'aide de Visual C# .NET

Propriétés

Numéro d'article: 825031 - Dernière mise à jour: jeudi 23 janvier 2014 - Version: 1.6
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft .NET Framework 1.0 Service Pack 2
  • Microsoft .NET Framework 1.0 Service Pack 1
  • Microsoft .NET Framework 1.0
Mots-clés : 
kbnosurvey kbarchive kbmt kbnetframe100presp3fix kbctrl kbcontrol kbqfe kbhotfixserver kbfix kbbug KB825031 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 825031
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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