CellContentClick有时不起作用

本文关键字:不起作用 CellContentClick | 更新日期: 2023-09-27 18:10:00

我的CellContentClick活动遇到了麻烦。有时,它不起作用。这是我的代码:

private void studentDGV_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                DataGridViewRow row = this.studentDGV.Rows[e.RowIndex];
                MessageBox.Show((String)row.Cells["StudentNo"].Value.ToString()+"");
            }
        }

我记得当我用vb.net编程时,我也遇到了这个事件的问题。所以我使用另一个事件SelectionChanged,但我不知道如何在c#中实现它。

这是我的vb.net代码:

'This function was called whenever you change the cell Cursor
    Private Sub SelectionChanged(ByVal sender As Object, ByVal e As EventArgs) Handles DGV.SelectionChanged
        ' Update the labels to reflect changes to the selection.
        Try
            Dim que As String = Me.DGV.Rows(Me.DGV.SelectedCells(0).RowIndex).Cells(0).Value
            changeAccessCB.Text = SQL.getAccess(que)
        Catch ex As Exception
        End Try
    End Sub
有谁能帮我把这段代码写成c#吗?如果可能的话,请列举出如何做到这一点的步骤。

CellContentClick有时不起作用

private void DataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    if (IsANonHeaderLinkCell(e))
    {
        MoveToLinked(e);
    }
    else if (IsANonHeaderButtonCell(e))
    {
        PopulateSales(e);
    }
}
private void MoveToLinked(DataGridViewCellEventArgs e)
{
    string employeeId;
    object value = DataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
    if (value is DBNull) { return; }
    employeeId = value.ToString();
    DataGridViewCell boss = RetrieveSuperiorsLastNameCell(employeeId);
    if (boss != null)
    {
        DataGridView1.CurrentCell = boss;
    }
}
private bool IsANonHeaderLinkCell(DataGridViewCellEventArgs cellEvent)
{
    if (DataGridView1.Columns[cellEvent.ColumnIndex] is
        DataGridViewLinkColumn &&
        cellEvent.RowIndex != -1)
    { return true; }
    else { return false; }
}
private bool IsANonHeaderButtonCell(DataGridViewCellEventArgs cellEvent)
{
    if (DataGridView1.Columns[cellEvent.ColumnIndex] is
        DataGridViewButtonColumn &&
        cellEvent.RowIndex != -1)
    { return true; }
    else { return (false); }
}
private DataGridViewCell RetrieveSuperiorsLastNameCell(string employeeId)
{
    foreach (DataGridViewRow row in DataGridView1.Rows)
    {
        if (row.IsNewRow) { return null; }
        if (row.Cells[ColumnName.EmployeeId.ToString()].Value.ToString().Equals(employeeId))
        {
            return row.Cells[ColumnName.LastName.ToString()];
        }
    }
    return null;
}