我已经在Stackoverflow中进行了一些搜索并找到了应该解决了我的问题的代码,但由于我无法找到的原因,它只是没有。我将解释我的问题:我的表单左侧显示一个问题,右侧可能的答案(可能的答案在datagridview中),当客户点击他的答案时,答案将在数据库中更新。客户端可以回到已经问过的问题并查看他之前的答案,该答案将由代码标记:
DG.Rows[i].Selected = True;
所以似乎蓝色标记是不够的,我需要添加另一个符号,表示所选行是客户端已经点击的行。 我被要求在所选行旁边添加一个选中复选框以指示该复选框。 我创建了一个CheckBox并使用了这段代码:
CbAnswer.Location = DG.PointToScreen(DG.GetCellDisplayRectangle(0, i, true).Location);
但由于某种原因,结果如下:
复选框应该在第5行右侧。 我想提一下,所有可能的答案都已填写在datagridview中,每次客户端点击一个单元格来选择他的答案,算法会隐藏前面的6个答案,并显示下6个答案。是否必须对我的问题采取任何措施?
答案 0 :(得分:1)
使用此代码检查复选框
DG.Rows[i].Cells[1].Value = true; //where 1 is the checkbox column
编辑 (使用您的代码)
CbAnswer.Location = new Point(DG.Location.X + DG.Width, DG.Location.Y +
DG.GetCellDisplayRectangle(0, i + 1, true).Location.Y - CbAnswer.Height);
答案 1 :(得分:1)
要获取当前单元格,请尝试使用
DG.CurrentCell.RowIndex
和
DG.CurrentCell.ColumnIndex
我不知道蓝色标记
答案 2 :(得分:0)
你有什么不同的结果吗?
CbAnswer.Location = DG.PointToScreen(DG.CurrentCell.ContentBounds.Location);