DataGridView.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 

イベントの種類

DataGridViewCellEventHandler

次のコード例では、 CellClick コントロールの image 列を使用する vs-tac-Toe ゲーム実装のイベントハンドラーを示し DataGridView ます。 ゲームが終了していない場合、またはセルが既にクリックされている場合を除き、イベントハンドラーは、 Bitmap 変数とによって表される2つのオブジェクトのいずれかにセル値を設定し x o ます。

このコードは 、「方法: Windows フォーム 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 キーを押すと、スペースキーを押したときにセルがクリックされたときに、これらのセルの種類に対して2回発生します。

セルの内容がクリックされたことを確認するには、イベントを処理し CellContentClick ます。

このイベントは、マウスの位置に関する情報を受け取りません。 イベントハンドラーがマウス位置に関する情報を必要とする場合は、イベントを使用し CellMouseClick ます。

でのクリックの場合 DataGridViewCheckBoxCell 、このイベントは、チェックボックスが値を変更する前に発生します。したがって、現在の値に基づいて予期される値を計算しない場合は、通常、イベントを処理 DataGridView.CellValueChanged します。 このイベントが発生するのは、ユーザーが指定した値がコミットされた場合のみです。通常はフォーカスがセルから離れるときに発生するため、イベントも処理する必要があり DataGridView.CurrentCellDirtyStateChanged ます。 このハンドラーで、現在のセルがチェックボックスセルの場合は、メソッドを呼び出し、 DataGridView.CommitEdit 値を渡し Commit ます。

イベントを処理する方法の詳細については、次を参照してください。処理とイベントの発生します。

適用対象

こちらもご覧ください