Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按钮不存在';放置在DataGridView上时不会收到鼠标单击_C#_Datagridview_Buttonclick - Fatal编程技术网

C# 按钮不存在';放置在DataGridView上时不会收到鼠标单击

C# 按钮不存在';放置在DataGridView上时不会收到鼠标单击,c#,datagridview,buttonclick,C#,Datagridview,Buttonclick,我尝试使用按钮将文件名和路径加载到DataGridView单元格中。 我将按钮放在单元格上,如下所示: var cellRectangle = dataGridView.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false); int buttonX = dataGridView.Location.X + cellRectangle.Location.X + cellRectangle.Width - btnLoadFile.Width

我尝试使用按钮将文件名和路径加载到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();
我想让用户点击按钮,选择文件对话框中的文件等。 问题是按钮没有被点击。网格单元接收单击

有人知道为什么会这样吗?我该怎么处理呢?

试试这个

dataGridView.Controls.SetChildIndex(btnLoadFile, 0);
// Bring it to the front
btnLoadFile.BringToFront();
也许你不需要最后一句话

试试这个

dataGridView.Controls.SetChildIndex(btnLoadFile, 0);
// Bring it to the front
btnLoadFile.BringToFront();

也许你不需要最后一句话

我将使用DataGridViewButtonColumn,而不是在网格上方绘制按钮。 这会在每行中为您提供一个按钮

如果希望按钮位于另一个显示电子邮件的单元格内,则可以派生所需的editcell类型,并实现TextBox和button的组合,使按钮仅在editmode中可见。看这里
更多信息。我会给你发一些代码,但不幸的是,我只为不同的目的制作了自己的单元格/编辑控件。

我会使用DataGridViewButtonColumn,而不是在网格上方绘制按钮。 这会在每行中为您提供一个按钮

如果希望按钮位于另一个显示电子邮件的单元格内,则可以派生所需的editcell类型,并实现TextBox和button的组合,使按钮仅在editmode中可见。看这里
更多信息。我会给你发一些代码,但不幸的是,我只为不同的目的制作了自己的单元格/editcontrols。

将按钮作为datagrid视图的子级,否则重新路由按钮单击event@Uthistran字体刚试过。按钮仍然不响应点击……这听起来是错误的。你可能只是没把它接好。如果您可以看到并单击它,它将调用其单击事件。当你在设计器中双击它时会发生什么?@TaW:是的,它看起来也错了。该按钮位于网格顶部。如果我单击它,按钮不会改变它的外观,相反,按钮下面的单元格接收焦点,就好像我单击了单元格而不是按钮一样。当然,有一个事件过程链接到按钮。按钮是如何添加的?在设计师中?密码?任何以任何方式修改按钮的代码?你能把它去掉,再加上那个按钮吗?它是添加到窗体还是dgv.Controls另外:清洁和重建!将按钮设为datagrid视图的子级,否则重新路由按钮单击event@Uthistran字体刚试过。按钮仍然不响应点击……这听起来是错误的。你可能只是没把它接好。如果您可以看到并单击它,它将调用其单击事件。当你在设计器中双击它时会发生什么?@TaW:是的,它看起来也错了。该按钮位于网格顶部。如果我单击它,按钮不会改变它的外观,相反,按钮下面的单元格接收焦点,就好像我单击了单元格而不是按钮一样。当然,有一个事件过程链接到按钮。按钮是如何添加的?在设计师中?密码?任何以任何方式修改按钮的代码?你能把它去掉,再加上那个按钮吗?它是添加到窗体还是dgv.Controls另外:清洁和重建!不幸的是,它没有改变任何事情。。。和以前一样不幸的是它没有改变任何事情。。。与以前相同的行为是的,我知道这个选项,但只是在窗体上抛出一个按钮并将其放置在单元格上似乎简单得多。另外,我不希望整个专栏都用按钮填充,这对用户来说没有什么信息,只是杂乱无章是的,我知道这个选项,但在表单上扔一个按钮,然后把它放在单元格上似乎简单得多。另外,我不希望整个专栏都有按钮,它对用户来说不是信息,只是杂乱无章