我尝试使用Button将文件名和路径加载到DataGridView单元格中。
我将按钮放在如下的单元格上:


 var cellRectangle = dataGridView.GetCellDisplayRectangle(e.ColumnIndex,e.RowIndex,false);
 int buttonX = dataGridView.Location.X + cellRectangle.Location.X + cellRectangle.Width - btnLoadFile.Width;
 int buttonY = dataGridView.Location.Y + cellRectangle.Location.Y;

 btnLoadFile.Location = new Point(buttonX + 20,buttonY);
 btnLoadFile.Height = cellRectangle.Height - 2 ;
 btnLoadFile.Visible = true;
 btnLoadFile.BringToFront();



 我希望用户单击按钮,在FileDialog等中选择文件。
问题是按钮没有被点击。网格单元格接收点击次数。


有没有人知道它为什么会发生,我该如何处理?

答案 0 :(得分:0)
试试这个......
dataGridView.Controls.SetChildIndex(btnLoadFile, 0);
// Bring it to the front
btnLoadFile.BringToFront();
也许你不需要最后一行...
答案 1 :(得分:0)
我会使用DataGridViewButtonColumn而不是在网格上方绘制一个按钮。 这样你就可以在每行中找到一个按钮。
如果您希望将按钮放在另一个显示电子邮件的单元格中,您可以派生所需的editcell类型并实现TextBox和Button的组合,并使该按钮仅在editmode中可见。看这里 https://msdn.microsoft.com/de-de/library/7tas5c80(v=vs.100).aspx 了解更多信息。我会给你发一些代码但不幸的是我只为不同的目的制作了自己的cell / editcontrol。