CellContentClick
事件并不总是有效 - 它有时是有效的,有时不是随机的。
我的代码如下,我正在使用断点进行检查,但程序有时会进入块,有时则不会。为什么会这样?
private void dataGridView1_CellContentClick_1(object sender, DataGridViewCellEventArgs e)
{
textBoxUserName.ReadOnly = true;
button2.Visible = true;
int index = e.RowIndex;
if (!(index < 0))
{
DataGridViewRow row = dataGridView1.Rows[index];
textBoxUserName.Text = row.Cells["UserNAme"].Value.ToString();
textBoxPassword.Text = row.Cells["Pass"].Value.ToString();
dataGridView1.Focus();
}
dataGridView1.Focus();
}
答案 0 :(得分:21)
请尝试使用CellClick事件:
单击单元格的任何部分时发生。
单击单元格时,CellContentClick事件不一定会触发,用户必须单击单元格的“内容”区域,例如文本:
单击单元格中的内容时发生。
答案 1 :(得分:0)
尝试改用 CellClick 事件(正如 LarsTech 所说。
双击设计视图上的数据网格会将 CellContentClick 事件链接到一个方法,这意味着您需要准确单击内容,而不是单元格。
假设我们有一个名为“IsChecked”的单元格,它是一个布尔值并显示为一个小复选框。在复选框中单击右键将触发 CellContentClick,而在其他任何地方都不会。
“其他任何地方”包括内容前后的空格、填充空格、行标题。
当使用 CellClick 时,我们需要检查行标题是否被点击,这会生成 e.RowIndex = -1。
if (e.RowIndex < 0 || e.RowIndex >= dataGridView.RowCount)