다음을 통해 공유


DataGridView.CellClick 이벤트

정의

셀에서 임의 부분을 클릭하면 발생합니다.

public:
 event System::Windows::Forms::DataGridViewCellEventHandler ^ CellClick;
public event System.Windows.Forms.DataGridViewCellEventHandler CellClick;
public event System.Windows.Forms.DataGridViewCellEventHandler? CellClick;
member this.CellClick : System.Windows.Forms.DataGridViewCellEventHandler 
Public Custom Event CellClick As DataGridViewCellEventHandler 

이벤트 유형

예제

다음 코드 예제에서는 컨트롤의 CellClick 이미지 열을 사용하는 Tic-Tac-Toe 게임 구현의 DataGridView 이벤트 처리기를 보여 줍니다. 게임이 끝났거나 셀을 이미 클릭하지 않는 한 이벤트 처리기는 셀 값을 변수 xo로 표시되는 두 Bitmap 개체 중 하나로 설정합니다.

이 코드에 표시 된 것 보다 큰 예제의의 일부인 방법: Windows Forms DataGridView 컨트롤에서 이미지 열 작업합니다.

void dataGridView1_CellClick( Object^ sender, DataGridViewCellEventArgs^ e )
{
   if ( turn->Equals( gameOverString ) )
   {
      return;
   }

   DataGridViewImageCell^ cell = dynamic_cast<DataGridViewImageCell^>(dataGridView1->Rows[ e->RowIndex ]->Cells[ e->ColumnIndex ]);
   if ( cell->Value == blank )
   {
      if ( IsOsTurn() )
      {
         cell->Value = o;
      }
      else
      {
         cell->Value = x;
      }

      ToggleTurn();
   }

   if ( IsAWin( cell ) )
   {
      turn->Text = gameOverString;
   }
}
private void dataGridView1_CellClick(object sender,
    DataGridViewCellEventArgs e)
{

    if (turn.Text.Equals(gameOverString)) { return; }

    DataGridViewImageCell cell = (DataGridViewImageCell)
        dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];

    if (cell.Value == blank)
    {
        if (IsOsTurn())
        {
            cell.Value = o;
        }
        else
        {
            cell.Value = x;
        }
        ToggleTurn();
    }
    if (IsAWin())
    {
        turn.Text = gameOverString;
    }
}
Private Sub dataGridView1_CellClick(ByVal sender As Object, _
    ByVal e As DataGridViewCellEventArgs) _
    Handles dataGridView1.CellClick

    If turn.Text.Equals(gameOverString) Then Return

    Dim cell As DataGridViewImageCell = _
        CType(dataGridView1.Rows(e.RowIndex). _
            Cells(e.ColumnIndex), DataGridViewImageCell)
    If (cell.Value Is blank) Then
        If IsOsTurn() Then
            cell.Value = o
        Else
            cell.Value = x
        End If
        ToggleTurn()
        ToolTip(e)
    End If
    If IsAWin() Then
        turn.Text = gameOverString
    End If
End Sub

설명

이 이벤트는 테두리 및 안쪽 여백을 포함하여 셀의 모든 부분을 클릭할 때 발생합니다. 단추 셀이나 검사 상자 셀에 포커스가 있는 동안 사용자가 SPACE 키를 누르고 놓을 때도 발생하며, SPACE 키를 누르는 동안 셀을 클릭하면 이러한 셀 형식에 대해 두 번 발생합니다.

셀 내용이 클릭되는 시기를 확인하려면 이벤트를 처리합니다 CellContentClick .

이 이벤트는 마우스 위치에 대한 정보를 수신하지 않습니다. 이벤트 처리기에 마우스 위치에 대한 정보가 필요한 경우 이벤트를 사용합니다 CellMouseClick .

에서 클릭하는 DataGridViewCheckBoxCell경우 이 이벤트는 검사 상자가 값을 변경하기 전에 발생하므로 현재 값을 기준으로 예상 값을 계산하지 않으려면 일반적으로 이벤트를 대신 처리 DataGridView.CellValueChanged 합니다. 이 이벤트는 일반적으로 포커스가 셀을 떠날 때 발생하는 사용자 지정 값이 커밋될 때만 발생하므로 이벤트도 처리 DataGridView.CurrentCellDirtyStateChanged 해야 합니다. 해당 처리기에서 현재 셀이 검사 상자 셀인 경우 메서드를 DataGridView.CommitEdit 호출하고 값을 전달합니다Commit.

이벤트를 처리 하는 방법에 대 한 자세한 내용은 참조 하세요. 이벤트 처리 및 발생합니다.

적용 대상

추가 정보