DataGridViewCell.InitializeEditingControl 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
셀을 편집하는 데 사용되는 컨트롤을 초기화합니다.
public:
virtual void InitializeEditingControl(int rowIndex, System::Object ^ initialFormattedValue, System::Windows::Forms::DataGridViewCellStyle ^ dataGridViewCellStyle);
public virtual void InitializeEditingControl (int rowIndex, object initialFormattedValue, System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle);
abstract member InitializeEditingControl : int * obj * System.Windows.Forms.DataGridViewCellStyle -> unit
override this.InitializeEditingControl : int * obj * System.Windows.Forms.DataGridViewCellStyle -> unit
Public Overridable Sub InitializeEditingControl (rowIndex As Integer, initialFormattedValue As Object, dataGridViewCellStyle As DataGridViewCellStyle)
매개 변수
- rowIndex
- Int32
셀 위치의 행 인덱스(0부터 시작)입니다.
- dataGridViewCellStyle
- DataGridViewCellStyle
셀의 스타일을 나타내는 DataGridViewCellStyle입니다.
예외
연결된 DataGridView가 없는 경우나 있더라도 연결된 편집 컨트롤이 없는 경우
예제
다음 코드 예제에서는 클래스에서 파생 되는 간단한 클래스에서 메서드를 재정 InitializeEditingControl 의 DataGridViewTextBoxCell 하는 방법을 보여 줍니다. 이 예제는 방법: Windows Forms DataGridView 셀의 호스트 컨트롤에 제공된 더 큰 코드 예제의 일부입니다.
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;
}
}
}
Public Class CalendarCell
Inherits DataGridViewTextBoxCell
Public Sub New()
' Use the short date format.
Me.Style.Format = "d"
End Sub
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, _
dataGridViewCellStyle)
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)
Else
ctl.Value = CType(Me.Value, DateTime)
End If
End Sub
Public Overrides ReadOnly Property EditType() As Type
Get
' Return the type of the editing control that CalendarCell uses.
Return GetType(CalendarEditingControl)
End Get
End Property
Public Overrides ReadOnly Property ValueType() As Type
Get
' Return the type of the value that CalendarCell contains.
Return GetType(DateTime)
End Get
End Property
Public Overrides ReadOnly Property DefaultNewRowValue() As Object
Get
' Use the current date and time as the default value.
Return DateTime.Now
End Get
End Property
End Class
설명
최적화 기술로, 일반적으로 동일한 형식의 모든 셀과 동일한 DataGridView 공유의 모든 셀은 호스트된 단일 편집 컨트롤을 공유합니다. 그러나 셀에서 컨트롤을 사용 하기 전에 메서드에 의해 InitializeEditingControl 초기화 해야 합니다. 처음 호출되면 이 메서드는 부모 DataGridView컨트롤의 편집 컨트롤 목록에 컨트롤을 추가합니다. 또한 셀의 시각적 속성 중 일부를 초기화합니다. 예를 들어 InitializeEditingControl 제공된 셀 스타일 매개 변수와 일치하도록 편집 영역의 배경색을 설정합니다. 후속 호출은 InitializeEditingControl 아무 것도 수행하지 않습니다.
파생 클래스는 이 메서드를 사용하여 해당 형식에 Control 해당하는 클래스의 인스턴스를 호스트합니다. 예를 들어 하나 이상의 DataGridViewTextBoxCell 개체가 포함된 테이블은 이 메서드를 호출하여 소유에 단일 TextBox 편집 컨트롤을 추가합니다 DataGridView.