Public Class UserControlCell
Inherits DataGridViewCell
Public Sub New()
End Sub
Protected Overrides Sub Paint(graphics As Graphics, clipBounds As Rectangle, cellBounds As Rectangle, rowIndex As Integer,
cellState As DataGridViewElementStates, value As Object, formattedValue As Object, errorText As String,
cellStyle As DataGridViewCellStyle, advancedBorderStyle As DataGridViewAdvancedBorderStyle,
paintParts As DataGridViewPaintParts)
MyBase.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, formattedValue, errorText, cellStyle, advancedBorderStyle, paintParts)
End Sub
Public Overrides Sub InitializeEditingControl(ByVal rowIndex As Integer,
ByVal initialFormattedValue As Object,
ByVal dataGridViewCellStyle As DataGridViewCellStyle)
'Establezca el valor del control de edición en el valor de celda actual.
MyBase.InitializeEditingControl(rowIndex, initialFormattedValue,
dataGridViewCellStyle)
Dim ctl As UserControlEditingControl =
CType(DataGridView.EditingControl, UserControlEditingControl)
'' Utilice el valor de fila predeterminado cuando la propiedad Value es 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
' Devuelve el tipo de control de edición que utiliza UserControl.
Return GetType(UserControlEditingControl)
End Get
End Property
Public Overrides Property ValueType() As Type
Get
' Devuelve el tipo de valor que contiene UserControl.
Return GetType(String)
End Get
Set(value As Type)
End Set
End Property
Public Overrides ReadOnly Property DefaultNewRowValue() As Object
Get
'Utilice nothing como elemento predeterminado
Return Nothing
End Get
End Property
#Region "CLASE UserControlEditingControl"
Class UserControlEditingControl
Inherits ctrl_btn_Aviso
Implements IDataGridViewEditingControl
Private dataGridViewControl As DataGridView
Private valueIsChanged As Boolean = False
Private rowIndexNum As Integer
Public Sub New()
MyBase.New()
End Sub
Public Property EditingControlFormattedValue() As Object _
Implements IDataGridViewEditingControl.EditingControlFormattedValue
Get
Return Me.Controls(1).Text
End Get
Set(ByVal value As Object)
Me.Controls(1).Text = value
End Set
End Property
Public Function GetEditingControlFormattedValue(ByVal context As DataGridViewDataErrorContexts) As Object _
Implements IDataGridViewEditingControl.GetEditingControlFormattedValue
Return Me.Controls(1).Text
End Function
Public Sub ApplyCellStyleToEditingControl(ByVal dataGridViewCellStyle As DataGridViewCellStyle) _
Implements IDataGridViewEditingControl.ApplyCellStyleToEditingControl
'Me.Font = dataGridViewCellStyle.Font
'Me.Controls(1).ForeColor = dataGridViewCellStyle.ForeColor
'Me.Controls(1).BackColor = dataGridViewCellStyle.BackColor
End Sub
Public Property EditingControlRowIndex() As Integer _
Implements IDataGridViewEditingControl.EditingControlRowIndex
Get
Return rowIndexNum
End Get
Set(ByVal value As Integer)
rowIndexNum = value
End Set
End Property
Public Function EditingControlWantsInputKey(ByVal key As Keys,
ByVal dataGridViewWantsInputKey As Boolean) As Boolean _
Implements IDataGridViewEditingControl.EditingControlWantsInputKey
'Deje que UserControl controle las claves enumeradas
Select Case key And Keys.KeyCode
Case Keys.Left, Keys.Up, Keys.Down, Keys.Right,
Keys.Home, Keys.End, Keys.PageDown, Keys.PageUp
Return True
Case Else
Return Not dataGridViewWantsInputKey
End Select
End Function
Public Sub PrepareEditingControlForEdit(ByVal selectAll As Boolean) _
Implements IDataGridViewEditingControl.PrepareEditingControlForEdit
' No preparation needs to be done.
End Sub
Public ReadOnly Property RepositionEditingControlOnValueChange() _
As Boolean Implements _
IDataGridViewEditingControl.RepositionEditingControlOnValueChange
Get
Return False
End Get
End Property
Public Property EditingControlDataGridView() As DataGridView _
Implements IDataGridViewEditingControl.EditingControlDataGridView
Get
Return dataGridViewControl
End Get
Set(ByVal value As DataGridView)
dataGridViewControl = value
End Set
End Property
Public Property EditingControlValueChanged() As Boolean _
Implements IDataGridViewEditingControl.EditingControlValueChanged
Get
Return valueIsChanged
End Get
Set(ByVal value As Boolean)
valueIsChanged = value
End Set
End Property
Public ReadOnly Property EditingControlCursor() As Cursor _
Implements IDataGridViewEditingControl.EditingPanelCursor
Get
Return MyBase.Cursor
End Get
End Property
End Class
#End Region
End Class