DataGridView.CellClick Zdarzenie

Definicja

Występuje po kliknięciu dowolnej części komórki.Occurs when any part of a cell is clicked.

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 

Przykłady

Poniższy przykład kodu przedstawia procedurę obsługi zdarzeń CellClick w implementacji gier kółko i krzyżyk-Tac-Toe, która używa kolumn obrazu w kontrolce DataGridView.The following code example shows a CellClick event handler in a Tic-Tac-Toe game implementation that uses image columns in a DataGridView control. Jeśli gra nie jest przekroczeniem lub komórka została już kliknięta, program obsługi zdarzeń ustawia wartość komórki na jeden z dwóch Bitmap obiektów reprezentowanych przez zmienne x i o.Unless the game is over or the cell has already been clicked, the event handler sets the cell value to one of two Bitmap objects represented by the variables x and o.

Ten kod jest częścią większego przykładu przedstawionego w instrukcje: pracy z kolumnami obrazów w kontrolce DataGridView Windows Forms.This code is part of a larger example shown in How to: Work with Image Columns in the Windows Forms DataGridView Control.

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

Uwagi

To zdarzenie występuje, gdy zostanie kliknięta jakakolwiek część komórki, włącznie z obramowaniem i uzupełnieniem.This event occurs when any part of a cell is clicked, including borders and padding. Występuje również, gdy użytkownik naciśnie i zwolni klawisz spacji, gdy komórka przycisku lub komórka pola wyboru ma fokus, i wystąpi dwa razy dla tych typów komórek, jeśli komórka zostanie kliknięta podczas naciskania klawisza spacji.It also occurs when the user presses and releases the SPACE key while a button cell or check box cell has focus, and will occur twice for these cell types if the cell is clicked while pressing the SPACE key.

Aby określić, kiedy zawartość komórki zostanie kliknięta, obsłuż zdarzenie CellContentClick.To determine when the cell contents are clicked, handle the CellContentClick event.

To zdarzenie nie otrzymuje informacji o położeniu kursora myszy.This event does not receive information about the mouse position. Jeśli program obsługi zdarzeń wymaga informacji o pozycji myszy, użyj zdarzenia CellMouseClick.If the event handler needs information about the mouse position, use the CellMouseClick event.

W przypadku kliknięć DataGridViewCheckBoxCell, to zdarzenie występuje przed zmianą pola wyboru, jeśli nie chcesz obliczyć oczekiwanej wartości na podstawie bieżącej wartości, zamiast tego będzie zazwyczaj obsługiwać zdarzenie DataGridView.CellValueChanged.For clicks in a DataGridViewCheckBoxCell, this event occurs before the check box changes value, so if you do not want to calculate the expected value based on the current value, you will typically handle the DataGridView.CellValueChanged event instead. Ponieważ to zdarzenie występuje tylko wtedy, gdy wartość określona przez użytkownika jest zadeklarowana, co zwykle ma miejsce, gdy fokus opuszcza komórkę, należy również obsłużyć zdarzenie DataGridView.CurrentCellDirtyStateChanged.Because that event occurs only when the user-specified value is committed, which typically occurs when focus leaves the cell, you must also handle the DataGridView.CurrentCellDirtyStateChanged event. W tej procedurze obsługi, jeśli bieżąca komórka jest komórką pola wyboru, wywołaj metodę DataGridView.CommitEdit i przekaż wartość Commit.In that handler, if the current cell is a check box cell, call the DataGridView.CommitEdit method and pass in the Commit value.

Aby uzyskać więcej informacji o sposobie obsługi zdarzeń, zobacz Obsługa iwywoływanie zdarzeń.For more information about how to handle events, see Handling and Raising Events.

Dotyczy

Zobacz też