Realmente no se puede encontrar un punto para una celda DGV porque las celdas ocupan un área rectangular en un DGV. Sin embargo, puede encontrar esta área usando el DataGridView.GetCellDisplayRectangle() method. Devuelve un Rectangle
para el área de visualización de una celda DGV dada por los índices de columnas y filas de la celda. Si realmente quiere un punto, puede usar fácilmente el Rectangle
para construir Puntos para cualquiera de las cuatro esquinas del 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}\t y:{1}", cellRectangle.Left, cellRectangle.Top);
Console.WriteLine("Bottom Right x:{0}\t y:{1}", cellRectangle.Right, cellRectangle.Bottom);
Pero estoy de acuerdo con los comentarios de su pregunta; sería mejor crear una DataGridViewColumn personalizada y alojar allí su TextBox y Button. Here's an example de hacer esto para el control DateTimePicker:
Su idea aquí es bastante frágil. Hay mejores formas de agregar botones a las celdas en un 'DataGridView'. Las celdas pueden contener cualquier tipo de control que desee, incluidos controles personalizados. Recomiendo registrarse primero. –
¿Por qué no usa DataGridViewButtonColumn? Es parte de .NET Framework. – Vale
Porque lo que quiero lograr es un cuadro de texto con un botón al lado (estoy seguro de que hay una mejor manera pero no puedo resolverlo, prob heredando DataGridViewColumn). –