小弟程序中遇到一个头疼的问题,请大牛帮忙!
有一个datagridview2是一个form控件,我在程序中控制最后一列动态显示按钮,具体的按钮生成代码如下:
button1.Location = new System.Drawing.Point(rect.X, rect.Y);
button1.Size = new System.Drawing.Size(75, 23);
 button1.Text = "删除";
 button1.UseVisualStyleBackColor = true;
dataGridView2.Controls.Add(button1);
 button1.Click += new EventHandler(dgvbutton2_Click);
dgvbutton2_Click是按钮点击后触发的事件。
现在我需要在用户点击后,在dgvbutton2_Click里面通过判断一些条件来进行删除。
但是现在的问题是,我在dgvbutton2_Click里面无法获取到当前被点击的按钮在datagridview的行号。
我尝试过cell_click   cellContentClick   cellMouseClick等事件,但是无效,点击后只能去dgvbutton2_Click事件中。
所以我想问问,有没有方法可以让我在dgvbutton2_Click方法中,获取到当前被点击的button按钮所在的行号?
               

解决方案 »

  1.   

    你看下dgvbutton2_Click中有e.RowHandle属性或类似属性吗?
    其实你的这种设计不应该是动态添加按钮,而应该是添加一列按钮列,然后动态判断按钮是显示还是隐藏或者说按钮是可用还是不可用才比较合适
      

  2.   

    顺便问下?datagridview里面,如在在一个按钮列中放多个按钮?
      

  3.   

    把按钮设置为隐藏和动态创建效果应该是一样的吧,再就是你的是WinForm还是Web,如果是WinForm你还可以尝试设置下点击单元格的时候选中整行,这时候就可以获取到选中行了,不过我没有测试过需要你自己试下是否可行
      

  4.   


    我用的是winform,问题在于我点击单元格上的按钮的时候,好像没有触发任何一个datagridview的事件,所以我做不了任何操作,因为我这块不熟悉,请问像这种动态生成的按钮,并且已经指定了委托事件的按钮,点击后,会触发datagridview什么事件呢?