1

我不确定这是否可行,但我想获取 DataGridView 单元格内的按钮实例。(使用 c# .net 和 windows 窗体)

这样做的原因是因为我想在该按钮附近弹出一个带有控件的面板,所以我需要它的位置。(这可能吗?)。

我正在处理 CellClicked 事件处理程序中的按钮单击:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        Int32 id = (Int32)dataGridView1[0, e.RowIndex].Value;
        if (e.RowIndex < 0 || e.ColumnIndex != dataGridView1.Columns["NewDate"].Index)
        {
            if (e.RowIndex < 0 || e.ColumnIndex != dataGridView1.Columns["Delete"].Index) return;
            else
            {

            }
        }
        else
        {
            //Button button - the button I'm trying to get 
            panel2.Location=new Point(button.Location.X,button.Location.Y);

        }

    }
4

1 回答 1

1

您不必获取按钮,而是单击单元格的矩形。检查代码:

    private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        Int32 id = (Int32)dataGridView1[0, e.RowIndex].Value;
        if (e.RowIndex < 0 || e.ColumnIndex != dataGridView1.Columns["NewDate"].Index)
        {
            if (e.RowIndex < 0 || e.ColumnIndex != dataGridView1.Columns["Delete"].Index) return;
            else
            {

            }
        }
        else
        {
            Rectangle rect = dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, false);
            panel2.Location=new Point(rect.X,rect.Y);

        }

    }
于 2012-10-12T13:32:17.590 回答