2010-03-22 6 views
1

Est-ce que quelqu'un sait comment puis-je déterminer où l'utilisateur a cliqué dans un contrôle DataGrid? J'utilise .NET CF avec Windows Mobile 6. Ce que je dois savoir, c'est si l'utilisateur a cliqué sur la cellule sélectionnée ou sur une zone vide (non couverte par des colonnes ou des lignes). Y at-il un moyen de le récupérer de EventArgs?C# DataGrid Clic Position

Merci.

Répondre

2

C'est de MSDN

private void myDataGrid_MouseDown(object sender, 
System.Windows.Forms.MouseEventArgs e) 
{ 
    DataGrid myGrid = (DataGrid) sender; 
    System.Windows.Forms.DataGrid.HitTestInfo hti; 
    hti = myGrid.HitTest(e.X, e.Y); 
    string message = "You clicked "; 

    switch (hti.Type) 
    { 
     case System.Windows.Forms.DataGrid.HitTestType.None : 
     message += "the background."; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.Cell : 
     message += "cell at row " + hti.Row + ", col " + hti.Column; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.ColumnHeader : 
     message += "the column header for column " + hti.Column; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.RowHeader : 
     message += "the row header for row " + hti.Row; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.ColumnResize : 
     message += "the column resizer for column " + hti.Column; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.RowResize : 
     message += "the row resizer for row " + hti.Row; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.Caption : 
     message += "the caption"; 
     break; 
     case System.Windows.Forms.DataGrid.HitTestType.ParentRows : 
     message += "the parent row"; 
     break; 
     } 

     Console.WriteLine(message); 
}