Ir al contenido principal

Entradas

Mostrando entradas de 2012

DataGridViewTextEditorColumn (IV Parte)

Ahora veremos la clase DataGridViewTextEditorCell, esta clase como ya había comentado al inicio de este articulo, hereda de DataGridViewTextBoxCell, esta clase se encargara de pintar los botones e interactuar con los eventos del ratón (Mouse). no publicare mucho código de esta clase, solo mostrare y explicare los eventos y métodos principales.
en esta clase he sobre escrito el evento Paint(), veamos el código:   protected override void Paint ( Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts ) { RepositoryButtonCollection btnCollection = null; if (this.columnButtons.ContainsKey(this.RowIndex)) btnCollection = this.columnButtons[this.RowIndex] as RepositoryButtonCollection; //if…

DataGridViewTextEditorColumn (III Parte)

Continuando con el articulo, ahora veremos la clase DataGridViewTextEditorColumn, esta clase hereda de DataGridViewColumn y le he agregado dos propiedades para nuestro propósito  ShowButtonMode y ColumnEditor, esta ultima propiedad es del tipo RepositoryTextEditor.

Los valores para ShowButtonMode son:
Always: Indica que los botones de la celda siempre estaran visibles.FocusedRow: Indica que los botones solo se mostraran en la fila activa en el momento.FocusedCell: Indica que los botones solo se mostraran en la celda activa en el momento. Veamos el código:   [ToolboxBitmap(typeof(System.Windows.Forms.TextBox))] public class DataGridViewTextEditorColumn : DataGridViewColumn { private ShowButtonMode showButtonMode; private RepositoryTextEditor repositoryTextEditor; private IDesignerHost IDesignerHost { get { return this.DataGridView.Site.GetService(typeof(IDesignerHost)) as IDesignerHost; } } // Crea el editor de la celda en ca…

DataGridViewTextEditorColumn (II Parte)

Bien, continuando con el articulo.... la primera clase que veremos sera RepositoryTextEditor, este heredara de Component ya que no tendrá una UI que interactue con el usuario.
  [ToolboxBitmap(typeof(System.Windows.Forms.TextBox))] [DesignerSerializer(typeof(RepositoryButtonSerializer), typeof(CodeDomSerializer))] public class RepositoryTextEditor : Component { private string name; private bool allowWhiteSpace; private HorizontalAlignment textAlign; private CharacterCasing characterCasing; private TextEditor.MaskType maskType; private RepositoryButtonCollection buttons; private static readonly object buttonClick; internal System.Windows.Forms.DataGridView DataGridViewOwner { get; set; } public delegate void RepositoryButtonPressEventHandler(object sender, RepositoryButtonArgs args); public event RepositoryButtonPressEventHandler ButtonClick { add { base.Events.AddHandler(buttonClick, value); } remo…

DataGridViewTextEditorColumn (I Parte)

Como lo dice el titulo, una clase DataGridViewTextEditorColumn... Al principio, cuando cree el control "TextEditor", la idea era luego crear una columna para el control "DataGridView" que utilice mi control como editor de la celda para poder agregarle botones, como también poder usarlo en celdas donde solo se deban digitar números.

Este articulo lo dividiremos en varios articulos para poder explicarlo mejor e intentare explicar mejor cada clase.
Por cuestiones de tiempo no lo había hecho, también por cuestiones de pereza, si!!!.. pereza, jejejeje.... solo de pensar el código que tenia que escribir me daba pereza iniciar. Pero!!!... recientemente donde trabajo hice un formulario para capturar la producción de los empleados, pero el usuario me sugirió que le seria mas fácil si el botón para buscar y eliminar los empleados de la captura apareciera en la misma celda. Ademas en varios desarrollos propios debía implementar este tipo de columna que hasta hoy lo habia resuel…

NetBarControl - Description Item Style (New)

Mejoras. Permite mostrar una descripción sobre el Item, permitiendo cambiar el tipo de fuente y el color de la fuente. La imagen usada para este estilo sera la asignada a la propiedad "LargeImagen" la cual se mostrara de izquierda a derecha.Uso de la rueda del raton (Mouse Wheel) para probocar el movimiento de desplazamiento arriba/abajo.Descargar

¿Como implementar esta nueva versión?
Simple, solo tienes que reemplazar el archivo "NetBarControl.dll" actual por este nuevo, recompilar tu projecto y listo.¿Como seleccionar este nuevo estilo para un grupo? Solo debes de seleccionar el grupo al cual le quieres cambiar el estilo y establecer la propiedad "Style = DescriptionItemList"

y como siempre.... no olviden dejar sus comentarios y cualquier problema no duden en hacermelo saber para hacer las correpciones del caso.

Salu2,


Actualizaciones:
29 Sep 2012 - Download

Correpciones:
Se corrigieron los dos problemas reportados por Jose Luis, 1) Error al collapsar el contro…

Personalizar DataGridView (III) - Cambiar Diseñador.

Articulos anteriores:
Personalizar DataGridView (I) - Pintar área vacía.
Personalizar DataGridView (II) - Bloquear columnas de solo lectura.
Personalizar DataGridView (II.1) - Saltar columna usando un metodo.

Como ya hemos visto en los artículos anteriores sobre este mismo tema, ahora lo que haré es modificar el diseñador de este control.

¿Con que objetivo?
Bien... este es un control que se suele usar mucho en los desarrollos, para mostrar muchos registros de forma vertical, pero en lo personal, cuando tengo más de 6 columnas en este control y necesito modificar una o dos columnas, cualquiera de sus propiedades, se me olvida que no puedo con un simple "click" sobre el encabezado de la columna seleccionar esta para poderla modificar, para esto tengo que usar el editor de la colección "Columns", que no digo que este mal.
pero!!!!... porque este control no implementa esta funcionalidad que vendría a ser de mucha utilidad, bueno!!!!... desde mi punto de vista.
veamos un posibl…