2017-06-07 3 views
0

Je veux obtenir l'index de n'importe quelle rangée que ma souris est au-dessus et pas nécessairement de la rangée choisie.Comment obtenir l'index de ligne lorsque MouseHover dans Radgridview

Private Sub RadGridView1_MouseHover(sender As Object, e As EventArgs) Handles RadGridView1.MouseHover 
      Try 
       toolidx = RadGridView1.CurrentCell.RowIndex 
       strphone = dsOrders.Tables(0).Rows(toolidx)("DeliveryPhone") 

      Catch ex As Exception 
       RadMessageBox.Show(ex.Message, projectName, MessageBoxButtons.OK, RadMessageIcon.Error) 
       errlog.WriteLog(ex.Message.ToString, Me.Name, System.Reflection.MethodBase.GetCurrentMethod().Name.ToString()) 
      End Try 
     End Sub 

le code ci-dessus ce que je veux, mais pour la ligne sélectionnée je veux obtenir l'index de la ligne quand ma souris est sur cette ligne. Quelqu'un peut-il aider?

+0

[Ancien lien sur telerik] (http://www.telerik.com/forums/finding-the-grid-row-item-under-the-mouse-pointer), très bien peut avoir changé, mais il y a un exemple de code disponible là pour le téléchargement –

+0

la réponse doit être plus simple :( – vicangel

Répondre

0

Vous devriez être en mesure d'obtenir la cellule avec l'instruction suivante. Ne devrait pas être difficile d'obtenir l'index de ligne et de colonne de lui.

Dim cell As GridCellElement = TryCast(RadGridView1.ElementTree.GetElementAtPoint(e.Location), GridCellElement) 

Comme GetElementAtPoint pourrait revenir élément de GridView qui ne sont pas nécessairement des cellules, pour être plus cellules de données précises. Ne pas oublier de vérifier ce qui est vraiment sous le curseur. Comme l'événement MouseHover ne donne pas d'informations sur les coordonnées, vous devriez peut-être utiliser l'événement MouseMove ou vous pourriez utiliser la propriété Cursor.Position.

crédit de http://www.telerik.com/forums/determining-the-mouse-down-position-in-cell et mouse coordinates in MouseHover event?

+0

merci beaucoup pour la réponse mais e.location n'est malheureusement pas acceptée dans l'événement mouseHover je ne veux pas cliquer sur la cellule je veux juste la planer – vicangel

+0

Mis à jour ma réponse sur votre problème de localisation –

+0

merci beaucoup pour les réponses peut-être que j'ai besoin d'eux une autre fois! J'ai résolu mon problème. – vicangel

0

Mon vrai problème était ... Je voulais ajouter une info-bulle dans la colonne spécifique et infobulle indique la valeur d'une autre colonne est le code ici pour le faire.

Private Sub RadGridView1_ToolTipTextNeeded(sender As Object, e As ToolTipTextNeededEventArgs) Handles RadGridView1.ToolTipTextNeeded 
     Try 
      Dim cell As GridDataCellElement = TryCast(sender, GridDataCellElement) 

      If cell IsNot Nothing AndAlso cell.ColumnInfo.Name = "DeliveryName" Then  
       e.ToolTipText = cell.RowInfo.Cells.Item("DeliveryPhone").Value 

      End If 
     Catch ex As Exception 
      RadMessageBox.Show(ex.Message, projectName, MessageBoxButtons.OK, RadMessageIcon.Error) 
      errlog.WriteLog(ex.Message.ToString, Me.Name, System.Reflection.MethodBase.GetCurrentMethod().Name.ToString()) 
     End Try 
    End Sub