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 個物件之一。

此程式碼是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

備註

按一下儲存格的任何部分時,就會發生此事件,包括框線和邊框間距。 當使用者按下空格鍵並放開 SPACE 鍵時,也會發生于按鈕儲存格或核取方塊儲存格有焦點時,如果按下空格鍵時按下儲存格,這些儲存格類型也會發生兩次。

若要判斷何時按一下儲存格內容,請處理 CellContentClick 事件。

此事件不會接收滑鼠位置的相關資訊。 如果事件處理常式需要滑鼠位置的相關資訊,請使用 CellMouseClick 事件。

對於 中的 DataGridViewCheckBoxCell 按一下 ,此事件會在核取方塊變更值之前發生,因此如果您不想根據目前值計算預期的值,您通常會改為處理 DataGridView.CellValueChanged 事件。 因為只有在認可使用者指定的值時才會發生該事件,這通常會發生在焦點離開儲存格時,您也必須處理 DataGridView.CurrentCellDirtyStateChanged 事件。 在該處理常式中,如果目前的儲存格是核取方塊儲存格,請呼叫 DataGridView.CommitEdit 方法並傳入 Commit 值。

如需如何處理事件的詳細資訊,請參閱 處理和引發事件

適用於

另請參閱