确定DataGridView中的单元格位置

时间:2011-05-09 12:52:05

标签: c# .net winforms data-binding datagridview

给定一个特定的行号和列索引,如何在DataGridView中计算单元格位置(IE:Location.Point)?

我需要单元格位置的原因是我可以在单元格内放置一个按钮以允许文件夹浏览(datagridview显示文件夹路径)。

关于如何实现此欢迎的替代建议。

1 个答案:

答案 0 :(得分:33)

您无法真正找到DGV单元的点,因为单元占据DGV中的矩形区域。但是,您可以使用DataGridView.GetCellDisplayRectangle() method找到此区域。它为Cell的列和行索引给出的DGV Cell的显示区域返回Rectangle。如果你真的想要一个点,你可以轻松地使用Rectangle为任何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);

但我同意你的问题的评论者;最好创建一个自定义DataGridViewColumn并在那里托管TextBox和Button。为DateTimePicker控件执行此操作的Here's an example