Déterminer l’emplacement de la cellule dans DataGridView

Étant donné un numéro de ligne et un index de colonne spécifiques, comment puis-je calculer l’emplacement de la cellule (IE: Location.Point) dans un DataGridView?

La raison pour laquelle j’ai besoin de l’emplacement de la cellule est que je peux positionner un bouton à l’intérieur de la cellule pour permettre la navigation dans les dossiers (la datagridview indique les chemins des dossiers).

Suggestions alternatives sur la façon d’accomplir cet accueil.

Vous ne pouvez pas vraiment trouver un point pour une cellule DGV car les cellules occupent une zone rectangular dans un DGV. Toutefois, vous pouvez trouver cette zone à l’aide de la méthode DataGridView.GetCellDisplayRectangle () . Il renvoie un Rectangle pour la zone d’affichage d’une cellule DGV, donné par les index de colonne et de ligne de la cellule. Si vous voulez vraiment un point, vous pouvez facilement utiliser le Rectangle pour construire des points pour l’un des quatre coins du Rectangle .

 // Get Rectangle for second column in second row. var cellRectangle = dataGridView1.GetCellDisplayRectangle(1, 1, true); // Can create Points using the Rectangle if you want. Console.WriteLine("Top Left x:{0}\ty:{1}", cellRectangle.Left, cellRectangle.Top); Console.WriteLine("Bottom Right x:{0}\ty:{1}", cellRectangle.Right, cellRectangle.Bottom); 

Mais je suis d’accord avec les commentateurs de votre question; il serait préférable de créer un DataGridViewColumn personnalisé et d’y héberger votre TextBox et votre Button. Voici un exemple de cela pour le contrôle DateTimePicker: