WinForm控件DataGridView问题 如何获取某个LinkColumn的单击事件

renyouprince 2009-04-17 12:54:05
我在一个DataGridView中加入了"详细信息","修改","删除"三个LinkColumn,都是自定义加的,不是用DataGridView自带的功能.请问我要怎么样才能获取到用户单击的是哪一个呢?就是要获取到相应的单击事件.比如点击"详细信息"的时候,我会从获取到的这个"详细信息"单击事件中弹出一个新的Form.怎么样知道用户单击的是哪一个?是用DataGridView的Cell_Click事件还是什么其他的呢?
望各位大虾指教...在线等...最好能给小弟贴一小段代码..先谢了..
...全文
1381 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
pl04073817 2012-09-21
  • 打赏
  • 举报
回复
那也只是点击单元格啊~能点到里面的LINK控件触发事件吗?求解
一个人单干 2012-07-31
  • 打赏
  • 举报
回复
        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dataGridView1.Columns[e.ColumnIndex].Name == "year")
{
MessageBox.Show("You picked " + dataGridView1.Rows[e.RowIndex].Cells["year"].Value.ToString());
}

}


year是字段name
fhljys 2011-12-17
  • 打赏
  • 举报
回复
应该是if(DataGridView1.Columns[e.ColumnIndex].Name = "Names") ;然后检查Names对不对
[Quote=引用 9 楼 etxyz 的回复:]
为什么我写
if(DataGridView1.Columns(e.ColumnIndex).Name = "Names")
{
MessageBox.Show("You picked " & DataGridView1.Rows(e.RowIndex). Cells("绑定列字段ID").Value)
}

点不出来啊
[/Quote]
fhljys 2011-12-17
  • 打赏
  • 举报
回复
thank you all ~~
diablo_lxg 2010-08-30
  • 打赏
  • 举报
回复
回复啊~!!!!回复啊~!!!!
nunnamed 2010-05-02
  • 打赏
  • 举报
回复
回复啊~!!!!
etxyz 2010-02-03
  • 打赏
  • 举报
回复
为什么我写
if(DataGridView1.Columns(e.ColumnIndex).Name = "Names")
{
MessageBox.Show("You picked " & DataGridView1.Rows(e.RowIndex). Cells("绑定列字段ID").Value)
}

点不出来啊
renyouprince 2009-04-17
  • 打赏
  • 举报
回复
谢谢大家的回答..

我已经有答案了.采用CeShenBeiWang 的方式解决,winform里应该就是要这样判断的..

谢了,给大家全部结分..


thanks.
wuyq11 2009-04-17
  • 打赏
  • 举报
回复
通过代理实现事件
private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
this.dataGridView2.Controls.Clear();
btnDetail.Bounds = this.dataGridView1.GetCellDisplayRectangle(e.ColumnIndex, e.RowIndex, true);
btnDetail.Visible = true;
btnDetail.Text = this.dataGridView1[e.ColumnIndex, e.RowIndex].Value.ToString();
btnDetail.Click += new EventHandler(btnDetail_Click);
this.dataGridView1.Controls.Add(btnDetail);
}
else
{
btnDetail.Visible = false;
}
}
参考


renyouprince 2009-04-17
  • 打赏
  • 举报
回复
哦...你说的是asp.net的WEB开发,这个我知道.我现在说的是WinForm下的DataGridView,不是web中的GridView.WinForm中的Link与web的不同,不能给其指定单击事件..呵呵..唉,从Web转来做winform还是有很大的不同啊...
mykelly6 2009-04-17
  • 打赏
  • 举报
回复
甚至列名可以用处理类的类名,然后用反射去找处理的类,这样不用写判断语句了
参考http://kb.cnblogs.com/page/42254/?page=2
mykelly6 2009-04-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 renyouprince 的帖子:]
我在一个DataGridView中加入了"详细信息","修改","删除"三个LinkColumn,都是自定义加的,不是用DataGridView自带的功能.请问我要怎么样才能获取到用户单击的是哪一个呢?就是要获取到相应的单击事件.比如点击"详细信息"的时候,我会从获取到的这个"详细信息"单击事件中弹出一个新的Form.怎么样知道用户单击的是哪一个?是用DataGridView的Cell_Click事件还是什么其他的呢?
望各位大虾指教...在线等...最好能给小弟贴一小段代码..先…
[/Quote]
cell_click就可以了阿,先判断选中的cell的列名,再根据这个去分别处理
joeandlily 2009-04-17
  • 打赏
  • 举报
回复
LinkColumn是在模板列中添加的LinkButton吗?
如果是的话,可以给LinkButton添加事件,
各个Button绑定不同的事件,
就不用区分了。
renyouprince 2009-04-17
  • 打赏
  • 举报
回复
请问是在哪个事件下面用这个代码处理呢??是Cell_Click吗??
CeShenBeiWang 2009-04-17
  • 打赏
  • 举报
回复
if(DataGridView1.Columns(e.ColumnIndex).Name = "Names")
{
MessageBox.Show("You picked " & DataGridView1.Rows(e.RowIndex). Cells("绑定列字段ID").Value)
}

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧