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 управления . Если игра не завершена или ячейка уже не была нажата, обработчик событий задает для ячейки значение одного из двух Bitmap объектов, представленных переменными x
и o
.
Этот код является частью более крупного примера, показанного в разделе Практическое руководство. Работа со столбцами изображений в элементе управления Windows Forms 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
Комментарии
Это событие возникает при щелчке любой части ячейки, включая границы и заполнение. Она также возникает, когда пользователь нажимает и отпускает клавишу ПРОБЕЛ, когда фокус находится на ячейке кнопки или проверка ячейке, и будет дважды встречаться для этих типов ячеек, если ячейка щелкается при нажатии клавиши ПРОБЕЛ.
Чтобы определить, когда щелкается содержимое ячейки, обработайте CellContentClick событие .
Это событие не получает сведения о положении мыши. Если обработчику событий требуются сведения о положении мыши, используйте CellMouseClick событие .
При щелчках в DataGridViewCheckBoxCellэто событие происходит до изменения значения поля проверка, поэтому если вы не хотите вычислять ожидаемое значение на основе текущего значения, обычно это событие обрабатываетсяDataGridView.CellValueChanged. Так как это событие возникает только при фиксации указанного пользователем значения, которое обычно происходит при выходе фокуса из ячейки, необходимо также обрабатывать DataGridView.CurrentCellDirtyStateChanged событие . В этом обработчике, если текущая ячейка является ячейкой проверка box, вызовите DataGridView.CommitEdit метод и передайте Commit значение .
Дополнительные сведения об обработке событий см. в разделе Обработка и вызов событий.