DataGridView.CellValuePushed Olay
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Denetimin VirtualModeDataGridView özelliği olduğunda true
ve bir hücre değeri değiştiğinde ve temel alınan veri kaynağında depolama gerektirdiğinde gerçekleşir.
public:
event System::Windows::Forms::DataGridViewCellValueEventHandler ^ CellValuePushed;
public event System.Windows.Forms.DataGridViewCellValueEventHandler CellValuePushed;
public event System.Windows.Forms.DataGridViewCellValueEventHandler? CellValuePushed;
member this.CellValuePushed : System.Windows.Forms.DataGridViewCellValueEventHandler
Public Custom Event CellValuePushed As DataGridViewCellValueEventHandler
Olay Türü
Örnekler
Aşağıdaki kod örneği, güncelleştirmeleri CellValuePushed ve yeni girişleri bir veri deposu nesnesinde depolamak için olayı işler. Bu örnek, başvuru konusunda bulunan VirtualMode daha büyük bir örneğin bir parçasıdır.
#pragma region Data store maintance
void VirtualConnector::dataGridView1_CellValueNeeded
(Object^ sender, DataGridViewCellValueEventArgs^ e)
{
if (store->ContainsKey(e->RowIndex))
{
// Use the store if the e value has been modified
// and stored.
e->Value = gcnew Int32(store->default[e->RowIndex]);
}
else if (newRowNeeded && e->RowIndex == numberOfRows)
{
if (dataGridView1->IsCurrentCellInEditMode)
{
e->Value = initialValue;
}
else
{
// Show a blank e if the cursor is just loitering
// over(the) last row.
e->Value = String::Empty;
}
}
else
{
e->Value = e->RowIndex;
}
}
void VirtualConnector::dataGridView1_CellValuePushed
(Object^ sender, DataGridViewCellValueEventArgs^ e)
{
String^ value = e->Value->ToString();
store[e->RowIndex] = Int32::Parse(value,
CultureInfo::CurrentCulture);
}
#pragma endregion
#region "data store maintance"
const int initialValue = -1;
private void dataGridView1_CellValueNeeded(object sender,
DataGridViewCellValueEventArgs e)
{
if (store.ContainsKey(e.RowIndex))
{
// Use the store if the e value has been modified
// and stored.
e.Value = store[e.RowIndex];
}
else if (newRowNeeded && e.RowIndex == numberOfRows)
{
if (dataGridView1.IsCurrentCellInEditMode)
{
e.Value = initialValue;
}
else
{
// Show a blank value if the cursor is just resting
// on the last row.
e.Value = String.Empty;
}
}
else
{
e.Value = e.RowIndex;
}
}
private void dataGridView1_CellValuePushed(object sender,
DataGridViewCellValueEventArgs e)
{
store.Add(e.RowIndex, int.Parse(e.Value.ToString()));
}
#endregion
private Dictionary<int, int> store = new Dictionary<int, int>();
#Region "data store maintance"
Const initialValue As Integer = -1
Private Sub dataGridView1_CellValueNeeded(ByVal sender As Object, _
ByVal e As DataGridViewCellValueEventArgs) _
Handles dataGridView1.CellValueNeeded
If store.ContainsKey(e.RowIndex) Then
' Use the store if the e value has been modified
' and stored.
e.Value = store(e.RowIndex)
ElseIf newRowNeeded AndAlso e.RowIndex = numberOfRows Then
If dataGridView1.IsCurrentCellInEditMode Then
e.Value = initialValue
Else
' Show a blank value if the cursor is just resting
' on the last row.
e.Value = String.Empty
End If
Else
e.Value = e.RowIndex
End If
End Sub
Private Sub dataGridView1_CellValuePushed(ByVal sender As Object, _
ByVal e As DataGridViewCellValueEventArgs) _
Handles dataGridView1.CellValuePushed
store.Add(e.RowIndex, CInt(e.Value))
End Sub
#End Region
Dim store As System.Collections.Generic.Dictionary(Of Integer, Integer) = _
New Dictionary(Of Integer, Integer)
Açıklamalar
Özel veri depolarını kullanıcı tarafından belirtilen verilerle güncelleştirmek için sanal modda bu olayı kullanın. Denetimde CellValueNeeded görüntülenmek üzere veri deposundan değerleri almak için olayı işleyebilirsiniz.
Sanal mod hakkında daha fazla bilgi için datagridview denetimi Windows Forms sanal mod bölümüne bakın.
Olayları işleme hakkında daha fazla bilgi için bkz. Olayları İşleme ve Oluşturma.