DataGridView.CellClick Olay

Tanım

Hücrenin herhangi bir bölümüne tıklandığında gerçekleşir.

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 

Olay Türü

Örnekler

Aşağıdaki kod örneği, bir CellClick denetimde görüntü sütunlarını kullanan Tic-Tac-Toe oyun uygulamasında bir DataGridView olay işleyicisini gösterir. Oyun bitmediği veya hücreye zaten tıklanmadığı sürece, olay işleyicisi hücre değerini ve Bitmapdeğişkenleriyle x temsil edilen iki o nesneden birine ayarlar.

Bu kod, Nasıl yapılır: Windows Forms DataGridView Denetimindeki Görüntü Sütunlarıyla Çalışma bölümünde gösterilen daha büyük bir örneğin parçasıdır.

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

Açıklamalar

Bu olay, kenarlıklar ve doldurma da dahil olmak üzere bir hücrenin herhangi bir bölümüne tıklandığında oluşur. Ayrıca, düğme hücresi veya onay kutusu hücresi odaktayken kullanıcı ARA tuşuna basıp serbest bıraktığında da gerçekleşir ve ARA ÇUBUĞU tuşuna basılırken hücre tıklandığında bu hücre türleri için iki kez gerçekleşir.

Hücre içeriğine ne zaman tıklandığına karar vermek için olayı işleyebilir CellContentClick .

Bu olay fare konumu hakkında bilgi almaz. Olay işleyicisi fare konumu hakkında bilgiye ihtiyaç duyuyorsa, olayı kullanın CellMouseClick .

içindeki DataGridViewCheckBoxCelltıklamalar için, onay kutusu değeri değiştirmeden önce bu olay gerçekleşir, bu nedenle beklenen değeri geçerli değere göre hesaplamak istemiyorsanız, genellikle olayı işlersiniz DataGridView.CellValueChanged . Bu olay yalnızca kullanıcı tarafından belirtilen değer işlendiğinde gerçekleştiğinden ve genellikle odak hücreden ayrıldığında gerçekleştiğinden, olayı da işlemeniz DataGridView.CurrentCellDirtyStateChanged gerekir. Bu işleyicide, geçerli hücre bir onay kutusu hücresiyse yöntemini çağırın DataGridView.CommitEdit ve değeri geçirin Commit .

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.

Şunlara uygulanır

Ayrıca bkz.