首先,c1Flexgrid这个控件不像vs里自带的DataGridView那样有CellClick事件可以直接获取用户点击的单元格信息。
注意:在c1Flexgrid里只能通过 click事件 处理 所以只能通过 HitTestInfo对象 把鼠标点下的坐标信息 变成我们需要的单元格信息(这个方法的到的左边可以避免 在点击空白以外的地方还是获取在这这之前获得焦点的单元格坐标信息)。
1 首先在click事件里 吧此事件的数据基类转换为 我们需要的 MouseEventArgs类型。
2 把MouseEventArgs.Location得到的坐标信息作为参数提供 给c1Flexgrid 控件的HitTest()方法 ,这样就可以得到一个HitTestInfo对象。
3 根据需要 判断 HitTestInfo对象的坐标点 不是行头,列头并且不是 数据单元格以为的地方。(也可以加上mouseEvent.Button == MouseButtons.Left 判断是不是鼠标左键的点击)
4 根据得到的横坐标 或者纵坐标 使用c1FlexGrid1.Rows[][] 二维数组进行定位单元格,想得到什么还不是轻而易举。
下面是项目中实例代码
1 // 通过HitTestInfo 根据坐标 取得所在行序号的相关值 2 private void c1FlexGrid1_Click(object sender, EventArgs e) 3 { 4 MouseEventArgs mouseEvent = e as MouseEventArgs; 5 if (mouseEvent.Button == MouseButtons.Left) 6 { 7 if (c1FlexGrid1.Rows !=