Winforms .NET 3.5 (C#)Display en DataGridViewCell
I tiene un DataGridView (DGView) y I creado CustomColumn y CustomCell que se mostrarán en la DGView. Creé un CustomUserControl que quiero mostrar en CustomCell.
Problema: No veo el control del usuario en la columna. Creo que necesito anular el método Paint() en CustomCell. ¿Cómo puedo hacer eso?
Nota: el ejemplo de control de usuario de alojamiento de MSDN es para editar el valor de celda, donde hace que su control de usuario esté visible en el lugar donde está editando su celda. Quiero que mi control de usuario se represente como un control de winform normal. Este control de usuario muestra notificaciones para la fila ... y cada fila puede tener notificaciones diferentes. Quiero que los usuarios puedan hacer clic en notificaciones y obtener más detalles al respecto. .. pero por ahora estoy atascado en "cómo mostrar este control de usuario"
Cualquier puntero será muy apreciado.
public class CustomColumn : DataGridViewColumn {
public CustomColumn() : base(new CustomeCell()) { }
public override DataGridViewCell CellTemplate
{
get
{
return base.CellTemplate;
}
set
{
// Ensure that the cell used for the template is a CalendarCell.
if (value != null &&
!value.GetType().IsAssignableFrom(typeof(CustomeCell)))
{
throw new InvalidCastException("It should be a custom Cell");
}
base.CellTemplate = value;
}
}
}
public class CustomeCell : DataGridViewTextBoxCell
{
public CustomeCell() : base() { }
public override Type ValueType
{
get
{
return typeof(CustomUserControl);
}
}
public override Type FormattedValueType
{
get
{
return typeof(CustomUserControl);
}
}
}
También debe definir una clase que deriva de control e implementa la interfaz IDataGridViewEditingControl. –
@AngshumanAgarwal Como mencioné en mi pregunta - No quiero editar, solo quiero mostrar mi control de usuario para todas las filas en una columna. – karephul
no entiendo exactamente ... pero ¿quieres mostrar los valores de las celdas no mostradas de un datagridview al usuario? (es decir, cuando el usuario hizo clic una vez en una celda), si es así, simplemente use la información sobre herramientas con SQLQuery o LINQ – sihirbazzz