DataGrid.BeginEdit(DataGridColumnStyle, Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Выполняет попытку перевести сетку в состояние, в котором разрешено редактирование.
public:
virtual bool BeginEdit(System::Windows::Forms::DataGridColumnStyle ^ gridColumn, int rowNumber);
public bool BeginEdit (System.Windows.Forms.DataGridColumnStyle gridColumn, int rowNumber);
abstract member BeginEdit : System.Windows.Forms.DataGridColumnStyle * int -> bool
override this.BeginEdit : System.Windows.Forms.DataGridColumnStyle * int -> bool
Public Function BeginEdit (gridColumn As DataGridColumnStyle, rowNumber As Integer) As Boolean
Параметры
- gridColumn
- DataGridColumnStyle
Редактируемый объект DataGridColumnStyle.
- rowNumber
- Int32
Номер редактируемой строки.
Возвращаемое значение
Значение true
, если метод выполнен успешно; в противном случае — значение false
.
Реализации
Примеры
В следующем примере кода метод используется BeginEdit для проверки возможности редактирования перед изменением указанного столбца и строки.
private:
void EditGrid( DataGrid^ dataGrid1 )
{
// Get the selected row and column through the CurrentCell.
int colNum;
int rowNum;
colNum = dataGrid1->CurrentCell.ColumnNumber;
rowNum = dataGrid1->CurrentCell.RowNumber;
// Get the selected DataGridColumnStyle.
DataGridColumnStyle^ dgCol;
dgCol = dataGrid1->TableStyles[ 0 ]->GridColumnStyles[ colNum ];
// Invoke the BeginEdit method to see if editing can begin.
if ( dataGrid1->BeginEdit( dgCol, rowNum ) )
{
// Edit row value. Get the DataTable and selected row.
DataTable^ myTable;
DataRow^ myRow;
// Assuming the DataGrid is bound to a DataTable.
myTable = (DataTable^)(dataGrid1->DataSource);
myRow = myTable->Rows[ rowNum ];
// Invoke the Row object's BeginEdit method.
myRow->BeginEdit();
myRow[ colNum ] = "New Value";
// You must accept changes on both DataRow and DataTable.
myRow->AcceptChanges();
myTable->AcceptChanges();
dataGrid1->EndEdit( dgCol, rowNum, false );
}
else
{
Console::WriteLine( "BeginEdit failed" );
}
}
private void EditGrid(DataGrid dataGrid1){
// Get the selected row and column through the CurrentCell.
int colNum;
int rowNum;
colNum = dataGrid1.CurrentCell.ColumnNumber;
rowNum = dataGrid1.CurrentCell.RowNumber;
// Get the selected DataGridColumnStyle.
DataGridColumnStyle dgCol;
dgCol = dataGrid1.TableStyles[0].GridColumnStyles[colNum];
// Invoke the BeginEdit method to see if editing can begin.
if (dataGrid1.BeginEdit(dgCol, rowNum)){
// Edit row value. Get the DataTable and selected row.
DataTable myTable;
DataRow myRow;
// Assuming the DataGrid is bound to a DataTable.
myTable = (DataTable) dataGrid1.DataSource;
myRow = myTable.Rows[rowNum];
// Invoke the Row object's BeginEdit method.
myRow.BeginEdit();
myRow[colNum] = "New Value";
// You must accept changes on both DataRow and DataTable.
myRow.AcceptChanges();
myTable.AcceptChanges();
dataGrid1.EndEdit(dgCol, rowNum, false);
}
else{
Console.WriteLine("BeginEdit failed");
}
}
Private Sub EditGrid(dataGrid1 As DataGrid)
' Get the selected row and column through the CurrentCell.
Dim colNum As Integer
Dim rowNum As Integer
colNum = dataGrid1.CurrentCell.ColumnNumber
rowNum = dataGrid1.CurrentCell.RowNumber
' Get the selected DataGridColumnStyle.
Dim dgCol As DataGridColumnStyle
dgCol = dataGrid1.TableStyles(0).GridColumnStyles(colNum)
' Invoke the BeginEdit method to see if editing can begin.
If dataGrid1.BeginEdit(dgCol, rowNum) Then
' Edit row value. Get the DataTable and selected row.
Dim myTable As DataTable
Dim myRow As DataRow
' Assuming the DataGrid is bound to a DataTable.
myTable = CType(dataGrid1.DataSource, DataTable)
myRow = myTable.Rows(rowNum)
' Invoke the Row object's BeginEdit method.
myRow.BeginEdit()
myRow(colNum) = "New Value"
' You must accept changes on both DataRow and DataTable.
myRow.AcceptChanges()
myTable.AcceptChanges()
dataGrid1.EndEdit(dgCol, rowNum, False)
Else
Console.WriteLine("BeginEdit failed")
End If
End Sub
Комментарии
Сетка отклонит запросы на изменение, если пользователь уже начал вводить текст в ячейку. В этом случае BeginEdit метод вернет false
.