DataGridView.EditingControl 属性


获取当前单元格承载的控件(如果包含编辑控件的单元格处于编辑模式下)。Gets the control hosted by the current cell, if a cell with an editing control is in edit mode.

 property System::Windows::Forms::Control ^ EditingControl { System::Windows::Forms::Control ^ get(); };
public System.Windows.Forms.Control EditingControl { get; }
member this.EditingControl : System.Windows.Forms.Control
Public ReadOnly Property EditingControl As Control


当前单元格承载的 ControlThe Control hosted by the current cell.



下面的代码示例演示如何在自定义单元类型的重写方法中使用此属性。The following code example illustrates how to use this property in an overridden method of a custom cell type. 在此示例中,检索对编辑控件的引用,强制转换为自定义编辑控件类型,然后使用单元的当前值进行填充。In the example, a reference to the editing control is retrieved, cast to a custom editing control type, and then populated with the current value of the cell.

此示例摘自 [How 中提供的更大示例的一部分:Windows 窗体 DataGridView 单元格中的主机控件 @ no__t-0。This example is part of a larger example available in How to: Host Controls in Windows Forms DataGridView Cells.

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, 
    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;
        ctl.Value = (DateTime)this.Value;
Public Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer, _
    ByVal initialFormattedValue As Object, _
    ByVal dataGridViewCellStyle As DataGridViewCellStyle)

    ' Set the value of the editing control to the current cell value.
    MyBase.InitializeEditingControl(rowIndex, initialFormattedValue, _

    Dim ctl As CalendarEditingControl = _
        CType(DataGridView.EditingControl, CalendarEditingControl)

    ' Use the default row value when Value property is null.
    If (Me.Value Is Nothing) Then
        ctl.Value = CType(Me.DefaultNewRowValue, DateTime)
        ctl.Value = CType(Me.Value, DateTime)
    End If
End Sub


如果该单元格未处于编辑模式,或单元类型不能容纳编辑控件,则此属性将返回 nullIf the cell is not in edit mode or the cell type does not accommodate an editing control, this property returns null.