DataGridView.CellClick 事件
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
發生於按一下儲存格的任何部分時。
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 影像資料行。 除非遊戲已結束或已經按一下儲存格,否則事件處理常式會將儲存格值設定為變數 x
和 o
所代表的兩 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 值。
如需如何處理事件的詳細資訊,請參閱 處理和引發事件。