Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. |
Traducción
Original
|
DataGridViewCell.InitializeEditingControl (Método)
Inicializa el control utilizado para editar la celda.
Ensamblado: System.Windows.Forms (en System.Windows.Forms.dll)
public virtual void InitializeEditingControl( int rowIndex, Object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle )
Parámetros
- rowIndex
- Tipo: System.Int32
Índice de base cero de la fila de la ubicación de la celda.
- initialFormattedValue
- Tipo: System.Object
Object que representa el valor que muestra la celda cuando se inicia la edición.
- dataGridViewCellStyle
- Tipo: System.Windows.Forms.DataGridViewCellStyle
DataGridViewCellStyle que representa el estilo de la celda.
| Excepción | Condición |
|---|---|
| InvalidOperationException |
No hay ningún control DataGridView asociado o, si alguno está presente, no tiene asociado un control de edición. |
Como técnica de optimización, normalmente todas las celdas del mismo tipo y del mismo control DataGridView comparten un único control de edición hospedado. Sin embargo, antes de que una celda utilice el control, necesita que el método InitializeEditingControl lo inicialice. Cuando se llama por primera vez, este método agrega el control a la lista de controles de edición de su control DataGridView primario. También inicializa algunas de las propiedades visuales de la celda. Por ejemplo, InitializeEditingControl establece el color de fondo del área de edición para que coincida con el parámetro de estilo de celda proporcionado. Las siguientes llamadas a InitializeEditingControl no hacen nada.
Las clases derivadas utilizan este método para hospedar una instancia de la clase Control que corresponde a su tipo. Por ejemplo, una tabla que contenga uno o varios objetos DataGridViewTextBoxCell llama a este método para agregar un único control de edición TextBox al control DataGridView propietario.
En el ejemplo de código siguiente se muestra la forma de reemplazar el método InitializeEditingControl en una clase sencilla derivada de la clase DataGridViewTextBoxCell. Este ejemplo forma parte de un ejemplo de código más extenso que se proporciona en Cómo: Alojar controles en celdas DataGridView de formularios Windows Forms.
public class CalendarCell : DataGridViewTextBoxCell { public CalendarCell() : base() { // Use the short date format. this.Style.Format = "d"; } public override void InitializeEditingControl(int rowIndex, object initialFormattedValue, DataGridViewCellStyle dataGridViewCellStyle) { // Set the value of the editing control to the current cell value. base.InitializeEditingControl(rowIndex, initialFormattedValue, dataGridViewCellStyle); CalendarEditingControl ctl = DataGridView.EditingControl as CalendarEditingControl; // Use the default row value when Value property is null. if (this.Value == null) { ctl.Value = (DateTime)this.DefaultNewRowValue; } else { ctl.Value = (DateTime)this.Value; } } public override Type EditType { get { // Return the type of the editing control that CalendarCell uses. return typeof(CalendarEditingControl); } } public override Type ValueType { get { // Return the type of the value that CalendarCell contains. return typeof(DateTime); } } public override object DefaultNewRowValue { get { // Use the current date and time as the default value. return DateTime.Now; } } }
Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2
.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.