DataGridViewDataErrorEventArgs.Context 屬性
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
取得發生錯誤時,DataGridView 之狀態的詳細資料。
public:
property System::Windows::Forms::DataGridViewDataErrorContexts Context { System::Windows::Forms::DataGridViewDataErrorContexts get(); };
public System.Windows.Forms.DataGridViewDataErrorContexts Context { get; }
member this.Context : System.Windows.Forms.DataGridViewDataErrorContexts
Public ReadOnly Property Context As DataGridViewDataErrorContexts
屬性值
DataGridViewDataErrorContexts 值的位元組合,指定發生錯誤的內容。
範例
下列程式碼範例示範如何調查錯誤內容。 此範例是類別概觀主題中較大範例的 DataGridViewComboBoxColumn 一部分。
private:
void DataGridView1_DataError(Object^ sender, DataGridViewDataErrorEventArgs^ anError)
{
MessageBox::Show("Error happened " + anError->Context.ToString());
if (anError->Context == DataGridViewDataErrorContexts::Commit)
{
MessageBox::Show("Commit error");
}
if (anError->Context == DataGridViewDataErrorContexts::CurrentCellChange)
{
MessageBox::Show("Cell change");
}
if (anError->Context == DataGridViewDataErrorContexts::Parsing)
{
MessageBox::Show("parsing error");
}
if (anError->Context == DataGridViewDataErrorContexts::LeaveControl)
{
MessageBox::Show("leave control error");
}
if (dynamic_cast<ConstraintException^>(anError->Exception) != nullptr)
{
DataGridView^ view = (DataGridView^)sender;
view->Rows[anError->RowIndex]->ErrorText = "an error";
view->Rows[anError->RowIndex]->Cells[anError->ColumnIndex]->ErrorText = "an error";
anError->ThrowException = false;
}
}
private void DataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs anError)
{
MessageBox.Show("Error happened " + anError.Context.ToString());
if (anError.Context == DataGridViewDataErrorContexts.Commit)
{
MessageBox.Show("Commit error");
}
if (anError.Context == DataGridViewDataErrorContexts.CurrentCellChange)
{
MessageBox.Show("Cell change");
}
if (anError.Context == DataGridViewDataErrorContexts.Parsing)
{
MessageBox.Show("parsing error");
}
if (anError.Context == DataGridViewDataErrorContexts.LeaveControl)
{
MessageBox.Show("leave control error");
}
if ((anError.Exception) is ConstraintException)
{
DataGridView view = (DataGridView)sender;
view.Rows[anError.RowIndex].ErrorText = "an error";
view.Rows[anError.RowIndex].Cells[anError.ColumnIndex].ErrorText = "an error";
anError.ThrowException = false;
}
}
Private Sub DataGridView1_DataError(ByVal sender As Object, _
ByVal e As DataGridViewDataErrorEventArgs) _
Handles DataGridView1.DataError
MessageBox.Show("Error happened " _
& e.Context.ToString())
If (e.Context = DataGridViewDataErrorContexts.Commit) _
Then
MessageBox.Show("Commit error")
End If
If (e.Context = DataGridViewDataErrorContexts _
.CurrentCellChange) Then
MessageBox.Show("Cell change")
End If
If (e.Context = DataGridViewDataErrorContexts.Parsing) _
Then
MessageBox.Show("parsing error")
End If
If (e.Context = _
DataGridViewDataErrorContexts.LeaveControl) Then
MessageBox.Show("leave control error")
End If
If (TypeOf (e.Exception) Is ConstraintException) Then
Dim view As DataGridView = CType(sender, DataGridView)
view.Rows(e.RowIndex).ErrorText = "an error"
view.Rows(e.RowIndex).Cells(e.ColumnIndex) _
.ErrorText = "an error"
e.ThrowException = False
End If
End Sub
備註
列舉的成員 DataGridViewDataErrorContexts 可以使用位 OR
運算子結合,以表示發生資料錯誤時所系結 DataGridView 資料的狀態。 例如,如果使用者輸入不正確儲存格值 (例如在需要日期) 的儲存格中輸入名稱,然後選取不同的儲存格,則會 DataGridView 嘗試認可不正確儲存格值。 當認可失敗時, DataGridView 將會引發 DataError 事件,其 Context 屬性將具有 和 CurrentCellChange 的值 Commit 。